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)
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
226 def clear_expression_plain_text(self) -> None: 227 """clear expression_plain_text""" 228 self.expression_plain_text.clear()
clear expression_plain_text
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
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
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
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
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
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
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
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!
302 def close_progress_bar(self) -> None: 303 """ 304 close progress bar dialog 305 """ 306 self.progress_bar.close()
close progress bar dialog
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
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
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
- 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