qiskit_classroom.converter_view

conveter view class

  1"""
  2    conveter view class
  3"""
  4
  5
  6from typing import TYPE_CHECKING
  7
  8# pylint: disable=no-name-in-module
  9from PySide6.QtCore import QSize, Qt, Signal
 10from PySide6.QtWidgets import (
 11    QWidget,
 12    QLabel,
 13    QComboBox,
 14    QVBoxLayout,
 15    QHBoxLayout,
 16    QPushButton,
 17    QMessageBox,
 18    QProgressDialog,
 19    QCheckBox,
 20)
 21
 22
 23from qasync import asyncSlot
 24from qiskit_classroom.expression_enum import (
 25    expressions,
 26    Converting_method,
 27    QuantumExpression,
 28)
 29from qiskit_classroom.result_image_dialog import ResultImageDialog
 30from qiskit_classroom.input_view import (
 31    ExpressionPlainText,
 32    QuantumCircuitInputWidget,
 33    DiracInputWidget,
 34    MatrixInputWidget,
 35    Input,
 36    InputWidget,
 37)
 38
 39
 40if TYPE_CHECKING:
 41    from .converter_presenter import ConverterPresenter
 42
 43
 44# pylint: disable=too-many-instance-attributes
 45# pylint: disable=too-many-public-methods
 46class ConverterView(QWidget):
 47    """
 48    converter view class
 49    """
 50
 51    from_combo_currentTextChanged = Signal()
 52    to_combo_currentTextChanged = Signal()
 53    file_dropped = Signal(object)
 54    file_imported = Signal(str)
 55
 56    def __init__(self) -> None:
 57        super().__init__()
 58        self.presenter = None
 59        self.currently_showing_input = QuantumExpression.NONE
 60        self.set_ui()
 61        self.center()
 62        self.setAcceptDrops(True)
 63
 64    def set_ui(self) -> None:
 65        """
 66        set UI
 67        """
 68        self.setWindowTitle("Converter")
 69        self.setContentsMargins(50, 50, 50, 50)
 70        self.setMinimumSize(QSize(500, 700))
 71
 72        vbox = QVBoxLayout(self)
 73        vbox.setAlignment(Qt.AlignmentFlag.AlignCenter)
 74        vbox.setSpacing(30)
 75
 76        self.expression_plain_text = ExpressionPlainText(self)
 77        self.expression_plain_text.file_dropped.connect(self.__on_file_dropped)
 78        vbox.addWidget(self.expression_plain_text)
 79
 80        converting_form_box = QHBoxLayout()
 81        converting_form_box.setAlignment(Qt.AlignmentFlag.AlignCenter)
 82        from_label = QLabel("from")
 83        to_label = QLabel("to")
 84        to_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
 85        self.from_combo = QComboBox()
 86        self.from_combo.addItems(expressions)
 87        self.from_combo.setCurrentIndex(3)
 88        self.from_combo.currentTextChanged.connect(
 89            self.__on_from_combo_current_text_changed
 90        )
 91        self.to_combo = QComboBox()
 92        self.to_combo.addItem(Converting_method[QuantumExpression.NONE][0].name)
 93        self.to_combo.setMinimumContentsLength(len(QuantumExpression.CIRCUIT.name))
 94        self.to_combo.currentIndexChanged.connect(
 95            self.__on_to_combo_current_text_changed
 96        )
 97        converting_form_box.addWidget(from_label)
 98        converting_form_box.addWidget(self.from_combo)
 99        converting_form_box.addWidget(to_label)
100        converting_form_box.addWidget(self.to_combo)
101
102        self.convert_button = QPushButton("Convert")
103        self.convert_button.clicked.connect(self.on_convert_push_button_clicked)
104
105        self.inputs: dict[QuantumExpression, InputWidget] = {
106            QuantumExpression.CIRCUIT: QuantumCircuitInputWidget(self),
107            QuantumExpression.MATRIX: MatrixInputWidget(self),
108            QuantumExpression.DIRAC: DiracInputWidget(self),
109        }
110        vbox.addLayout(converting_form_box)
111        for expression, input_widget in self.inputs.items():
112            if expression is QuantumExpression.CIRCUIT:
113                input_widget: QuantumCircuitInputWidget = input_widget
114                input_widget.file_imported.connect(self.__on_file_imported)
115            vbox.addWidget(input_widget)
116            input_widget.hide()
117
118        self.shows_results = QCheckBox("let result state show?")
119        vbox.addWidget(self.shows_results)
120
121        vbox.addWidget(self.convert_button)
122        vbox.addSpacing(50)
123
124        self.progress_bar = QProgressDialog(
125            "wait for progressing", "abort", 0, 0, parent=self
126        )
127        self.progress_bar.setMinimumWidth(300)
128        self.progress_bar.setCancelButton(None)
129        self.progress_bar.setWindowTitle("now converting")
130        self.progress_bar.close()
131
132    def connect_signal(self) -> None:
133        """connect signals to presenters slots"""
134        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)
135        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)
136        self.file_dropped.connect(self.presenter.on_file_dropped)
137        self.file_imported.connect(self.presenter.on_file_imported)
138
139    def center(self) -> None:
140        """
141        move widget to center of screen
142        """
143        frame = self.frameGeometry()
144        center_position = self.screen().availableGeometry().center()
145
146        frame.moveCenter(center_position)
147        self.move(frame.topLeft())
148
149    def __on_from_combo_current_text_changed(self) -> None:
150        self.from_combo_currentTextChanged.emit()
151
152    def disable_from_combo_current_text_change(self) -> None:
153        """disable event handling from_combo_currentTextChanged"""
154        self.from_combo_currentTextChanged.disconnect()
155
156    def enable_from_combo_current_text_change(self) -> None:
157        """endable event handling from_combo_currentTextChanged"""
158        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)
159
160    def __on_to_combo_current_text_changed(self) -> None:
161        self.to_combo_currentTextChanged.emit()
162
163    def disable_to_combo_current_text_change(self) -> None:
164        """disable event handling to_combo_currentTextChanged"""
165        self.to_combo_currentTextChanged.disconnect()
166
167    def enable_to_combo_current_text_change(self) -> None:
168        """endable event handling to_combo_currentTextChanged"""
169        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)
170
171    def __on_file_dropped(self, file_paths: list[str]) -> None:
172        self.file_dropped.emit(file_paths)
173
174    def __on_file_imported(self, file_path: str) -> None:
175        self.file_imported.emit(file_path)
176
177    def get_to_expression(self) -> str:
178        """return to_combo current text
179
180        Returns:
181            str: current to_combo text
182        """
183        return self.to_combo.currentText()
184
185    def get_from_expression(self) -> str:
186        """return from_combo current text
187
188        Returns:
189            str: current from_combo text
190        """
191        return self.from_combo.currentText()
192
193    def get_input(self, expression_selection: QuantumExpression) -> Input:
194        """return Input class
195
196        Args:
197            expression (QuantumExpression): selection for expression
198
199        Returns:
200            Input: user input class QuantumCircuitInput for QuantumCircuit, MatrixInput for Matrix
201            and DiracInput for Dirac noation
202        """
203        return self.inputs[expression_selection].get_input()
204
205    def show_input_widget(self, expression_selection: QuantumExpression) -> None:
206        """show input widget
207
208        Args:
209            expression_selection (QuantumExpression): select what want to show
210        """
211        for expression, input_widget in self.inputs.items():
212            if expression is expression_selection:
213                input_widget.show()
214            else:
215                input_widget.hide()
216
217    def set_placeholder(self, expression: QuantumExpression) -> None:
218        """set placehoder for expression_plain_text
219
220        Args:
221            expression (QuantumExpression): QuantumExpression enum
222        """
223        self.expression_plain_text.set_placeholder_text(expression=expression)
224
225    def clear_expression_plain_text(self) -> None:
226        """clear expression_plain_text"""
227        self.expression_plain_text.clear()
228
229    def set_from_combo_current_index(self, index: int) -> None:
230        """set from combo current index by \"index\"
231
232        Args:
233            index (int): index
234        """
235        self.from_combo.setCurrentIndex(index)
236
237    def set_expression_plain_text_text(self, text: str) -> None:
238        """set expression_pain_text text
239
240        Args:
241            text (str): text
242        """
243        self.expression_plain_text.setPlainText(text)
244
245    def get_expression_plain_text_text(self) -> str:
246        """return expresion_plain_text text
247
248        Returns:
249            str: plainText
250        """
251        return self.expression_plain_text.toPlainText()
252
253    def set_presenter(self, presenter: "ConverterPresenter") -> None:
254        """set presenter
255
256        Args:
257            presenter (ConverterPresenter): presenter for ConverterView
258        """
259        self.presenter = presenter
260        self.connect_signal()
261
262    def set_to_combo_items(self, items: list[str]) -> None:
263        """set to_combo items
264
265        Args:
266            items (list[str]): string items
267        """
268        self.to_combo.clear()
269        self.to_combo.addItems(items)
270
271    def get_shows_result(self) -> bool:
272        """return show_result checked
273
274        Returns:
275            bool: show_result
276        """
277
278        return self.shows_results.isChecked()
279
280    def show_alert_message(self, message: str) -> None:
281        """show alert message to user
282
283        Args:
284            message (str): message
285        """
286        QMessageBox.information(self, message, message)
287
288    @asyncSlot()
289    async def on_convert_push_button_clicked(self) -> None:
290        """
291        proxy for ConvertPresenter.on_convert_button_clicked()
292        """
293        await self.presenter.on_convert_button_clicked()
294
295    def show_progress_bar(self) -> None:
296        """
297        show progress bar to user. show progress to user!
298        """
299        self.progress_bar.show()
300
301    def close_progress_bar(self) -> None:
302        """
303        close progress bar dialog
304        """
305        self.progress_bar.close()
306
307    def show_confirm_dialog(self) -> None:
308        """take confirm to conversion"""
309        result = QMessageBox.question(
310            self, "Do convert?", "Conversion will process are you sure?"
311        )
312
313        if result == QMessageBox.StandardButton.Yes:
314            self.on_convert_push_button_clicked()
315
316    def show_result_image(self, image_path: str) -> None:
317        """show result image by ResultImageDialog
318
319        Args:
320            image_path (str): image path want to show
321        """
322        ResultImageDialog(self).show_image(image_path=image_path)
class ConverterView(PySide6.QtWidgets.QWidget):
 47class ConverterView(QWidget):
 48    """
 49    converter view class
 50    """
 51
 52    from_combo_currentTextChanged = Signal()
 53    to_combo_currentTextChanged = Signal()
 54    file_dropped = Signal(object)
 55    file_imported = Signal(str)
 56
 57    def __init__(self) -> None:
 58        super().__init__()
 59        self.presenter = None
 60        self.currently_showing_input = QuantumExpression.NONE
 61        self.set_ui()
 62        self.center()
 63        self.setAcceptDrops(True)
 64
 65    def set_ui(self) -> None:
 66        """
 67        set UI
 68        """
 69        self.setWindowTitle("Converter")
 70        self.setContentsMargins(50, 50, 50, 50)
 71        self.setMinimumSize(QSize(500, 700))
 72
 73        vbox = QVBoxLayout(self)
 74        vbox.setAlignment(Qt.AlignmentFlag.AlignCenter)
 75        vbox.setSpacing(30)
 76
 77        self.expression_plain_text = ExpressionPlainText(self)
 78        self.expression_plain_text.file_dropped.connect(self.__on_file_dropped)
 79        vbox.addWidget(self.expression_plain_text)
 80
 81        converting_form_box = QHBoxLayout()
 82        converting_form_box.setAlignment(Qt.AlignmentFlag.AlignCenter)
 83        from_label = QLabel("from")
 84        to_label = QLabel("to")
 85        to_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
 86        self.from_combo = QComboBox()
 87        self.from_combo.addItems(expressions)
 88        self.from_combo.setCurrentIndex(3)
 89        self.from_combo.currentTextChanged.connect(
 90            self.__on_from_combo_current_text_changed
 91        )
 92        self.to_combo = QComboBox()
 93        self.to_combo.addItem(Converting_method[QuantumExpression.NONE][0].name)
 94        self.to_combo.setMinimumContentsLength(len(QuantumExpression.CIRCUIT.name))
 95        self.to_combo.currentIndexChanged.connect(
 96            self.__on_to_combo_current_text_changed
 97        )
 98        converting_form_box.addWidget(from_label)
 99        converting_form_box.addWidget(self.from_combo)
100        converting_form_box.addWidget(to_label)
101        converting_form_box.addWidget(self.to_combo)
102
103        self.convert_button = QPushButton("Convert")
104        self.convert_button.clicked.connect(self.on_convert_push_button_clicked)
105
106        self.inputs: dict[QuantumExpression, InputWidget] = {
107            QuantumExpression.CIRCUIT: QuantumCircuitInputWidget(self),
108            QuantumExpression.MATRIX: MatrixInputWidget(self),
109            QuantumExpression.DIRAC: DiracInputWidget(self),
110        }
111        vbox.addLayout(converting_form_box)
112        for expression, input_widget in self.inputs.items():
113            if expression is QuantumExpression.CIRCUIT:
114                input_widget: QuantumCircuitInputWidget = input_widget
115                input_widget.file_imported.connect(self.__on_file_imported)
116            vbox.addWidget(input_widget)
117            input_widget.hide()
118
119        self.shows_results = QCheckBox("let result state show?")
120        vbox.addWidget(self.shows_results)
121
122        vbox.addWidget(self.convert_button)
123        vbox.addSpacing(50)
124
125        self.progress_bar = QProgressDialog(
126            "wait for progressing", "abort", 0, 0, parent=self
127        )
128        self.progress_bar.setMinimumWidth(300)
129        self.progress_bar.setCancelButton(None)
130        self.progress_bar.setWindowTitle("now converting")
131        self.progress_bar.close()
132
133    def connect_signal(self) -> None:
134        """connect signals to presenters slots"""
135        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)
136        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)
137        self.file_dropped.connect(self.presenter.on_file_dropped)
138        self.file_imported.connect(self.presenter.on_file_imported)
139
140    def center(self) -> None:
141        """
142        move widget to center of screen
143        """
144        frame = self.frameGeometry()
145        center_position = self.screen().availableGeometry().center()
146
147        frame.moveCenter(center_position)
148        self.move(frame.topLeft())
149
150    def __on_from_combo_current_text_changed(self) -> None:
151        self.from_combo_currentTextChanged.emit()
152
153    def disable_from_combo_current_text_change(self) -> None:
154        """disable event handling from_combo_currentTextChanged"""
155        self.from_combo_currentTextChanged.disconnect()
156
157    def enable_from_combo_current_text_change(self) -> None:
158        """endable event handling from_combo_currentTextChanged"""
159        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)
160
161    def __on_to_combo_current_text_changed(self) -> None:
162        self.to_combo_currentTextChanged.emit()
163
164    def disable_to_combo_current_text_change(self) -> None:
165        """disable event handling to_combo_currentTextChanged"""
166        self.to_combo_currentTextChanged.disconnect()
167
168    def enable_to_combo_current_text_change(self) -> None:
169        """endable event handling to_combo_currentTextChanged"""
170        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)
171
172    def __on_file_dropped(self, file_paths: list[str]) -> None:
173        self.file_dropped.emit(file_paths)
174
175    def __on_file_imported(self, file_path: str) -> None:
176        self.file_imported.emit(file_path)
177
178    def get_to_expression(self) -> str:
179        """return to_combo current text
180
181        Returns:
182            str: current to_combo text
183        """
184        return self.to_combo.currentText()
185
186    def get_from_expression(self) -> str:
187        """return from_combo current text
188
189        Returns:
190            str: current from_combo text
191        """
192        return self.from_combo.currentText()
193
194    def get_input(self, expression_selection: QuantumExpression) -> Input:
195        """return Input class
196
197        Args:
198            expression (QuantumExpression): selection for expression
199
200        Returns:
201            Input: user input class QuantumCircuitInput for QuantumCircuit, MatrixInput for Matrix
202            and DiracInput for Dirac noation
203        """
204        return self.inputs[expression_selection].get_input()
205
206    def show_input_widget(self, expression_selection: QuantumExpression) -> None:
207        """show input widget
208
209        Args:
210            expression_selection (QuantumExpression): select what want to show
211        """
212        for expression, input_widget in self.inputs.items():
213            if expression is expression_selection:
214                input_widget.show()
215            else:
216                input_widget.hide()
217
218    def set_placeholder(self, expression: QuantumExpression) -> None:
219        """set placehoder for expression_plain_text
220
221        Args:
222            expression (QuantumExpression): QuantumExpression enum
223        """
224        self.expression_plain_text.set_placeholder_text(expression=expression)
225
226    def clear_expression_plain_text(self) -> None:
227        """clear expression_plain_text"""
228        self.expression_plain_text.clear()
229
230    def set_from_combo_current_index(self, index: int) -> None:
231        """set from combo current index by \"index\"
232
233        Args:
234            index (int): index
235        """
236        self.from_combo.setCurrentIndex(index)
237
238    def set_expression_plain_text_text(self, text: str) -> None:
239        """set expression_pain_text text
240
241        Args:
242            text (str): text
243        """
244        self.expression_plain_text.setPlainText(text)
245
246    def get_expression_plain_text_text(self) -> str:
247        """return expresion_plain_text text
248
249        Returns:
250            str: plainText
251        """
252        return self.expression_plain_text.toPlainText()
253
254    def set_presenter(self, presenter: "ConverterPresenter") -> None:
255        """set presenter
256
257        Args:
258            presenter (ConverterPresenter): presenter for ConverterView
259        """
260        self.presenter = presenter
261        self.connect_signal()
262
263    def set_to_combo_items(self, items: list[str]) -> None:
264        """set to_combo items
265
266        Args:
267            items (list[str]): string items
268        """
269        self.to_combo.clear()
270        self.to_combo.addItems(items)
271
272    def get_shows_result(self) -> bool:
273        """return show_result checked
274
275        Returns:
276            bool: show_result
277        """
278
279        return self.shows_results.isChecked()
280
281    def show_alert_message(self, message: str) -> None:
282        """show alert message to user
283
284        Args:
285            message (str): message
286        """
287        QMessageBox.information(self, message, message)
288
289    @asyncSlot()
290    async def on_convert_push_button_clicked(self) -> None:
291        """
292        proxy for ConvertPresenter.on_convert_button_clicked()
293        """
294        await self.presenter.on_convert_button_clicked()
295
296    def show_progress_bar(self) -> None:
297        """
298        show progress bar to user. show progress to user!
299        """
300        self.progress_bar.show()
301
302    def close_progress_bar(self) -> None:
303        """
304        close progress bar dialog
305        """
306        self.progress_bar.close()
307
308    def show_confirm_dialog(self) -> None:
309        """take confirm to conversion"""
310        result = QMessageBox.question(
311            self, "Do convert?", "Conversion will process are you sure?"
312        )
313
314        if result == QMessageBox.StandardButton.Yes:
315            self.on_convert_push_button_clicked()
316
317    def show_result_image(self, image_path: str) -> None:
318        """show result image by ResultImageDialog
319
320        Args:
321            image_path (str): image path want to show
322        """
323        ResultImageDialog(self).show_image(image_path=image_path)

QWidget(self, parent: Optional[PySide6.QtWidgets.QWidget] = None, f: PySide6.QtCore.Qt.WindowType = Default(Qt.WindowFlags)) -> None

ConverterView()
57    def __init__(self) -> None:
58        super().__init__()
59        self.presenter = None
60        self.currently_showing_input = QuantumExpression.NONE
61        self.set_ui()
62        self.center()
63        self.setAcceptDrops(True)

__init__(self, parent: Optional[PySide6.QtWidgets.QWidget] = None, f: PySide6.QtCore.Qt.WindowType = Default(Qt.WindowFlags)) -> None

Initialize self. See help(type(self)) for accurate signature.

def from_combo_currentTextChanged(unknown):
def to_combo_currentTextChanged(unknown):
def file_dropped(unknown):
def file_imported(unknown):
presenter
currently_showing_input
def set_ui(self) -> None:
 65    def set_ui(self) -> None:
 66        """
 67        set UI
 68        """
 69        self.setWindowTitle("Converter")
 70        self.setContentsMargins(50, 50, 50, 50)
 71        self.setMinimumSize(QSize(500, 700))
 72
 73        vbox = QVBoxLayout(self)
 74        vbox.setAlignment(Qt.AlignmentFlag.AlignCenter)
 75        vbox.setSpacing(30)
 76
 77        self.expression_plain_text = ExpressionPlainText(self)
 78        self.expression_plain_text.file_dropped.connect(self.__on_file_dropped)
 79        vbox.addWidget(self.expression_plain_text)
 80
 81        converting_form_box = QHBoxLayout()
 82        converting_form_box.setAlignment(Qt.AlignmentFlag.AlignCenter)
 83        from_label = QLabel("from")
 84        to_label = QLabel("to")
 85        to_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
 86        self.from_combo = QComboBox()
 87        self.from_combo.addItems(expressions)
 88        self.from_combo.setCurrentIndex(3)
 89        self.from_combo.currentTextChanged.connect(
 90            self.__on_from_combo_current_text_changed
 91        )
 92        self.to_combo = QComboBox()
 93        self.to_combo.addItem(Converting_method[QuantumExpression.NONE][0].name)
 94        self.to_combo.setMinimumContentsLength(len(QuantumExpression.CIRCUIT.name))
 95        self.to_combo.currentIndexChanged.connect(
 96            self.__on_to_combo_current_text_changed
 97        )
 98        converting_form_box.addWidget(from_label)
 99        converting_form_box.addWidget(self.from_combo)
100        converting_form_box.addWidget(to_label)
101        converting_form_box.addWidget(self.to_combo)
102
103        self.convert_button = QPushButton("Convert")
104        self.convert_button.clicked.connect(self.on_convert_push_button_clicked)
105
106        self.inputs: dict[QuantumExpression, InputWidget] = {
107            QuantumExpression.CIRCUIT: QuantumCircuitInputWidget(self),
108            QuantumExpression.MATRIX: MatrixInputWidget(self),
109            QuantumExpression.DIRAC: DiracInputWidget(self),
110        }
111        vbox.addLayout(converting_form_box)
112        for expression, input_widget in self.inputs.items():
113            if expression is QuantumExpression.CIRCUIT:
114                input_widget: QuantumCircuitInputWidget = input_widget
115                input_widget.file_imported.connect(self.__on_file_imported)
116            vbox.addWidget(input_widget)
117            input_widget.hide()
118
119        self.shows_results = QCheckBox("let result state show?")
120        vbox.addWidget(self.shows_results)
121
122        vbox.addWidget(self.convert_button)
123        vbox.addSpacing(50)
124
125        self.progress_bar = QProgressDialog(
126            "wait for progressing", "abort", 0, 0, parent=self
127        )
128        self.progress_bar.setMinimumWidth(300)
129        self.progress_bar.setCancelButton(None)
130        self.progress_bar.setWindowTitle("now converting")
131        self.progress_bar.close()

set UI

def connect_signal(self) -> None:
133    def connect_signal(self) -> None:
134        """connect signals to presenters slots"""
135        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)
136        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)
137        self.file_dropped.connect(self.presenter.on_file_dropped)
138        self.file_imported.connect(self.presenter.on_file_imported)

connect signals to presenters slots

def center(self) -> None:
140    def center(self) -> None:
141        """
142        move widget to center of screen
143        """
144        frame = self.frameGeometry()
145        center_position = self.screen().availableGeometry().center()
146
147        frame.moveCenter(center_position)
148        self.move(frame.topLeft())

move widget to center of screen

def disable_from_combo_current_text_change(self) -> None:
153    def disable_from_combo_current_text_change(self) -> None:
154        """disable event handling from_combo_currentTextChanged"""
155        self.from_combo_currentTextChanged.disconnect()

disable event handling from_combo_currentTextChanged

def enable_from_combo_current_text_change(self) -> None:
157    def enable_from_combo_current_text_change(self) -> None:
158        """endable event handling from_combo_currentTextChanged"""
159        self.from_combo_currentTextChanged.connect(self.presenter.on_from_combo_changed)

endable event handling from_combo_currentTextChanged

def disable_to_combo_current_text_change(self) -> None:
164    def disable_to_combo_current_text_change(self) -> None:
165        """disable event handling to_combo_currentTextChanged"""
166        self.to_combo_currentTextChanged.disconnect()

disable event handling to_combo_currentTextChanged

def enable_to_combo_current_text_change(self) -> None:
168    def enable_to_combo_current_text_change(self) -> None:
169        """endable event handling to_combo_currentTextChanged"""
170        self.to_combo_currentTextChanged.connect(self.presenter.on_to_combo_changed)

endable event handling to_combo_currentTextChanged

def get_to_expression(self) -> str:
178    def get_to_expression(self) -> str:
179        """return to_combo current text
180
181        Returns:
182            str: current to_combo text
183        """
184        return self.to_combo.currentText()

return to_combo current text

Returns: str: current to_combo text

def get_from_expression(self) -> str:
186    def get_from_expression(self) -> str:
187        """return from_combo current text
188
189        Returns:
190            str: current from_combo text
191        """
192        return self.from_combo.currentText()

return from_combo current text

Returns: str: current from_combo text

def get_input( self, expression_selection: qiskit_classroom.expression_enum.QuantumExpression) -> qiskit_classroom.input_model.Input:
194    def get_input(self, expression_selection: QuantumExpression) -> Input:
195        """return Input class
196
197        Args:
198            expression (QuantumExpression): selection for expression
199
200        Returns:
201            Input: user input class QuantumCircuitInput for QuantumCircuit, MatrixInput for Matrix
202            and DiracInput for Dirac noation
203        """
204        return self.inputs[expression_selection].get_input()

return Input class

Args: expression (QuantumExpression): selection for expression

Returns: Input: user input class QuantumCircuitInput for QuantumCircuit, MatrixInput for Matrix and DiracInput for Dirac noation

def show_input_widget( self, expression_selection: qiskit_classroom.expression_enum.QuantumExpression) -> None:
206    def show_input_widget(self, expression_selection: QuantumExpression) -> None:
207        """show input widget
208
209        Args:
210            expression_selection (QuantumExpression): select what want to show
211        """
212        for expression, input_widget in self.inputs.items():
213            if expression is expression_selection:
214                input_widget.show()
215            else:
216                input_widget.hide()

show input widget

Args: expression_selection (QuantumExpression): select what want to show

def set_placeholder( self, expression: qiskit_classroom.expression_enum.QuantumExpression) -> None:
218    def set_placeholder(self, expression: QuantumExpression) -> None:
219        """set placehoder for expression_plain_text
220
221        Args:
222            expression (QuantumExpression): QuantumExpression enum
223        """
224        self.expression_plain_text.set_placeholder_text(expression=expression)

set placehoder for expression_plain_text

Args: expression (QuantumExpression): QuantumExpression enum

def clear_expression_plain_text(self) -> None:
226    def clear_expression_plain_text(self) -> None:
227        """clear expression_plain_text"""
228        self.expression_plain_text.clear()

clear expression_plain_text

def set_from_combo_current_index(self, index: int) -> None:
230    def set_from_combo_current_index(self, index: int) -> None:
231        """set from combo current index by \"index\"
232
233        Args:
234            index (int): index
235        """
236        self.from_combo.setCurrentIndex(index)

set from combo current index by "index"

Args: index (int): index

def set_expression_plain_text_text(self, text: str) -> None:
238    def set_expression_plain_text_text(self, text: str) -> None:
239        """set expression_pain_text text
240
241        Args:
242            text (str): text
243        """
244        self.expression_plain_text.setPlainText(text)

set expression_pain_text text

Args: text (str): text

def get_expression_plain_text_text(self) -> str:
246    def get_expression_plain_text_text(self) -> str:
247        """return expresion_plain_text text
248
249        Returns:
250            str: plainText
251        """
252        return self.expression_plain_text.toPlainText()

return expresion_plain_text text

Returns: str: plainText

def set_presenter( self, presenter: qiskit_classroom.converter_presenter.ConverterPresenter) -> None:
254    def set_presenter(self, presenter: "ConverterPresenter") -> None:
255        """set presenter
256
257        Args:
258            presenter (ConverterPresenter): presenter for ConverterView
259        """
260        self.presenter = presenter
261        self.connect_signal()

set presenter

Args: presenter (ConverterPresenter): presenter for ConverterView

def set_to_combo_items(self, items: list[str]) -> None:
263    def set_to_combo_items(self, items: list[str]) -> None:
264        """set to_combo items
265
266        Args:
267            items (list[str]): string items
268        """
269        self.to_combo.clear()
270        self.to_combo.addItems(items)

set to_combo items

Args: items (list[str]): string items

def get_shows_result(self) -> bool:
272    def get_shows_result(self) -> bool:
273        """return show_result checked
274
275        Returns:
276            bool: show_result
277        """
278
279        return self.shows_results.isChecked()

return show_result checked

Returns: bool: show_result

def show_alert_message(self, message: str) -> None:
281    def show_alert_message(self, message: str) -> None:
282        """show alert message to user
283
284        Args:
285            message (str): message
286        """
287        QMessageBox.information(self, message, message)

show alert message to user

Args: message (str): message

@asyncSlot()
def on_convert_push_button_clicked(self) -> None:
289    @asyncSlot()
290    async def on_convert_push_button_clicked(self) -> None:
291        """
292        proxy for ConvertPresenter.on_convert_button_clicked()
293        """
294        await self.presenter.on_convert_button_clicked()

proxy for ConvertPresenter.on_convert_button_clicked()

def show_progress_bar(self) -> None:
296    def show_progress_bar(self) -> None:
297        """
298        show progress bar to user. show progress to user!
299        """
300        self.progress_bar.show()

show progress bar to user. show progress to user!

def close_progress_bar(self) -> None:
302    def close_progress_bar(self) -> None:
303        """
304        close progress bar dialog
305        """
306        self.progress_bar.close()

close progress bar dialog

def show_confirm_dialog(self) -> None:
308    def show_confirm_dialog(self) -> None:
309        """take confirm to conversion"""
310        result = QMessageBox.question(
311            self, "Do convert?", "Conversion will process are you sure?"
312        )
313
314        if result == QMessageBox.StandardButton.Yes:
315            self.on_convert_push_button_clicked()

take confirm to conversion

def show_result_image(self, image_path: str) -> None:
317    def show_result_image(self, image_path: str) -> None:
318        """show result image by ResultImageDialog
319
320        Args:
321            image_path (str): image path want to show
322        """
323        ResultImageDialog(self).show_image(image_path=image_path)

show result image by ResultImageDialog

Args: image_path (str): image path want to show

staticMetaObject = PySide6.QtCore.QMetaObject("ConverterView" inherits "QWidget": Methods: #34 type=Signal, signature=from_combo_currentTextChanged() #35 type=Signal, signature=to_combo_currentTextChanged() #36 type=Signal, signature=file_dropped(PyObject), parameters=PyObject #37 type=Signal, signature=file_imported(QString), parameters=QString #38 type=Slot, signature=on_convert_push_button_clicked() )
Inherited Members
PySide6.QtWidgets.QWidget
acceptDrops
accessibleDescription
accessibleName
actionEvent
actions
activateWindow
addAction
addActions
adjustSize
autoFillBackground
backgroundRole
backingStore
baseSize
changeEvent
childAt
childrenRect
childrenRegion
clearFocus
clearMask
close
closeEvent
contentsMargins
contentsRect
contextMenuEvent
contextMenuPolicy
create
createWinId
createWindowContainer
cursor
destroy
devType
dragEnterEvent
dragLeaveEvent
dragMoveEvent
dropEvent
effectiveWinId
ensurePolished
enterEvent
event
find
focusInEvent
focusNextChild
focusNextPrevChild
focusOutEvent
focusPolicy
focusPreviousChild
focusProxy
focusWidget
font
fontInfo
fontMetrics
foregroundRole
frameGeometry
frameSize
geometry
grab
grabGesture
grabKeyboard
grabMouse
grabShortcut
graphicsEffect
graphicsProxyWidget
hasFocus
hasHeightForWidth
hasMouseTracking
hasTabletTracking
height
heightForWidth
hide
hideEvent
initPainter
inputMethodEvent
inputMethodHints
inputMethodQuery
insertAction
insertActions
internalWinId
isActiveWindow
isAncestorOf
isEnabled
isEnabledTo
isFullScreen
isHidden
isLeftToRight
isMaximized
isMinimized
isModal
isRightToLeft
isTopLevel
isVisible
isVisibleTo
isWindow
isWindowModified
keyPressEvent
keyReleaseEvent
keyboardGrabber
layout
layoutDirection
leaveEvent
locale
lower
mapFrom
mapFromGlobal
mapFromParent
mapTo
mapToGlobal
mapToParent
mask
maximumHeight
maximumSize
maximumWidth
metric
minimumHeight
minimumSize
minimumSizeHint
minimumWidth
mouseDoubleClickEvent
mouseGrabber
mouseMoveEvent
mousePressEvent
mouseReleaseEvent
move
moveEvent
nativeEvent
nativeParentWidget
nextInFocusChain
normalGeometry
overrideWindowFlags
overrideWindowState
paintEngine
paintEvent
palette
parentWidget
pos
previousInFocusChain
raise_
rect
redirected
releaseKeyboard
releaseMouse
releaseShortcut
removeAction
render
repaint
resize
resizeEvent
restoreGeometry
saveGeometry
screen
scroll
setAcceptDrops
setAccessibleDescription
setAccessibleName
setAttribute
setAutoFillBackground
setBackgroundRole
setBaseSize
setContentsMargins
setContextMenuPolicy
setCursor
setDisabled
setEnabled
setFixedHeight
setFixedSize
setFixedWidth
setFocus
setFocusPolicy
setFocusProxy
setFont
setForegroundRole
setGeometry
setGraphicsEffect
setHidden
setInputMethodHints
setLayout
setLayoutDirection
setLocale
setMask
setMaximumHeight
setMaximumSize
setMaximumWidth
setMinimumHeight
setMinimumSize
setMinimumWidth
setMouseTracking
setPalette
setParent
setScreen
setShortcutAutoRepeat
setShortcutEnabled
setSizeIncrement
setSizePolicy
setStatusTip
setStyle
setStyleSheet
setTabOrder
setTabletTracking
setToolTip
setToolTipDuration
setUpdatesEnabled
setVisible
setWhatsThis
setWindowFilePath
setWindowFlag
setWindowFlags
setWindowIcon
setWindowIconText
setWindowModality
setWindowModified
setWindowOpacity
setWindowRole
setWindowState
setWindowTitle
sharedPainter
show
showEvent
showFullScreen
showMaximized
showMinimized
showNormal
size
sizeHint
sizeIncrement
sizePolicy
stackUnder
statusTip
style
styleSheet
tabletEvent
testAttribute
toolTip
toolTipDuration
topLevelWidget
underMouse
ungrabGesture
unsetCursor
unsetLayoutDirection
unsetLocale
update
updateGeometry
updateMicroFocus
updatesEnabled
visibleRegion
whatsThis
wheelEvent
width
winId
window
windowFilePath
windowFlags
windowHandle
windowIcon
windowIconText
windowModality
windowOpacity
windowRole
windowState
windowTitle
windowType
x
y
RenderFlag
windowIconTextChanged
windowIconChanged
windowTitleChanged
customContextMenuRequested
PySide6.QtCore.QObject
blockSignals
childEvent
children
connect
connectNotify
customEvent
deleteLater
disconnect
disconnectNotify
dumpObjectInfo
dumpObjectTree
dynamicPropertyNames
emit
eventFilter
findChild
findChildren
inherits
installEventFilter
isQuickItemType
isSignalConnected
isWidgetType
isWindowType
killTimer
metaObject
moveToThread
objectName
parent
property
receivers
removeEventFilter
sender
senderSignalIndex
setObjectName
setProperty
signalsBlocked
startTimer
thread
timerEvent
tr
destroyed
objectNameChanged
PySide6.QtGui.QPaintDevice
colorCount
depth
devicePixelRatio
devicePixelRatioF
devicePixelRatioFScale
heightMM
logicalDpiX
logicalDpiY
paintingActive
physicalDpiX
physicalDpiY
widthMM
painters
PaintDeviceMetric