0

QWizardPage クラス内の変数 (例: openFile 関数) からメインの QWizard クラスに渡す方法を見つけようとしています。シグナルとスロットについても読みましたが、PyQt5を使用するときにこれが理想的な方法であるかどうか、およびその方法を理解できません。コードの簡単な例を次に示します。

class ImportWizard(QtWidgets.QWizard):
  def __init__(self, parent=None):
    super(ImportWizard, self).__init__(parent)
    self.addPage(Page1(self))
    self.setWindowTitle("Import Wizard")
    # Trigger close event when pressing Finish button to redirect variables to backend
    self.finished.connect(self.closeEvent)

  def closeEvent(self):
    print("Finish")
    # Return variables to use in main
    print(self.variable)


class Page1(QtWidgets.QWizardPage):

  def __init__(self, parent=None):
    super(Page1, self).__init__(parent)
    self.openFileBtn = QPushButton("Import Edge List")
    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(self.comboBox)
    layout.addWidget(self.openFileBtn)
    self.setLayout(layout)
    self.openFileBtn.clicked.connect(self.openFileNameDialog)

  def openFileNameDialog(self, parent):
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    fileName, _ = QFileDialog.getOpenFileName(
        self, "QFileDialog.getOpenFileName()", "",
        "All Files (*);;Python Files (*.py)", options=options)
    # if user selected a file store its path to a variable
    if fileName:
        self.parent.variable = fileName
4

1 に答える 1