gpt4 book ai didi

python - 如何将页面的功能连接到 qwizard 的下一步按钮?

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:14 25 4
gpt4 key购买 nike

我一直在看this例子。我基于它编写了我的代码,但我仍然无法弄清楚如何连接 qwizard 的下一步按钮。例如,我希望它在每次单击下一个按钮时打印页面的名称和编号。与完成按钮相同,单击完成时我希望它打印“完成!”在控制台上,主要是了解如何连接这些按钮以在其中一个页面中执行功能。

最佳答案

可以通过函数{your wizard}.button({type button})获取按钮,其中按钮类型可以是:

  • QtGui.QWizard.BackButton
  • QtGui.QWizard.NextButton
  • QtGui.QWizard.CommitButton
  • QtGui.QWizard.FinishButton
  • QtGui.QWizard.CancelButton
  • QtGui.QWizard.HelpButton
  • QtGui.QWizard.CustomButton1
  • QtGui.QWizard.CustomButton2
  • QtGui.QWizard.CustomButton3

代码:

from PyQt4 import QtGui


def createIntroPage():
page = QtGui.QWizardPage()
page.setTitle("Introduction")

label = QtGui.QLabel("This wizard will help you register your copy of "
"Super Product Two.")
label.setWordWrap(True)

layout = QtGui.QVBoxLayout()
layout.addWidget(label)
page.setLayout(layout)

return page


def createRegistrationPage():
page = QtGui.QWizardPage()
page.setTitle("Registration")
page.setSubTitle("Please fill both fields.")

nameLabel = QtGui.QLabel("Name:")
nameLineEdit = QtGui.QLineEdit()

emailLabel = QtGui.QLabel("Email address:")
emailLineEdit = QtGui.QLineEdit()

layout = QtGui.QGridLayout()
layout.addWidget(nameLabel, 0, 0)
layout.addWidget(nameLineEdit, 0, 1)
layout.addWidget(emailLabel, 1, 0)
layout.addWidget(emailLineEdit, 1, 1)
page.setLayout(layout)

return page


def createConclusionPage():
page = QtGui.QWizardPage()
page.setTitle("Conclusion")

label = QtGui.QLabel("You are now successfully registered. Have a nice day!")
label.setWordWrap(True)

layout = QtGui.QVBoxLayout()
layout.addWidget(label)
page.setLayout(layout)

return page


def backprint():
print("Action: back Page: " + wizard.currentPage().title())

def nextprint():
print("Action: next Page: " + wizard.currentPage().title())

def commitprint():
print("Action: commit Page: " + wizard.currentPage().title())

def finishprint():
print("Action:finish Page: " + wizard.currentPage().title())

def cancelprint():
print("Action:cancel Page: " + wizard.currentPage().title())

if __name__ == '__main__':

import sys

app = QtGui.QApplication(sys.argv)

wizard = QtGui.QWizard()

wizard.addPage(createIntroPage())
wizard.addPage(createRegistrationPage())
wizard.addPage(createConclusionPage())

wizard.button(QtGui.QWizard.BackButton).clicked.connect(backprint)
wizard.button(QtGui.QWizard.NextButton).clicked.connect(nextprint)
wizard.button(QtGui.QWizard.CommitButton).clicked.connect(commitprint)
wizard.button(QtGui.QWizard.FinishButton).clicked.connect(finishprint)
wizard.button(QtGui.QWizard.CancelButton).clicked.connect(cancelprint)

wizard.setWindowTitle("Trivial Wizard")
wizard.show()
print("Page :" + wizard.currentPage().title())

sys.exit(wizard.exec_())

输出:

Page :Introduction
Action: next Page: Registration
Action: next Page: Conclusion
Action: back Page: Registration
Action: back Page: Introduction
Action: next Page: Registration
Action: next Page: Conclusion
Action:finish Page: Conclusion

关于python - 如何将页面的功能连接到 qwizard 的下一步按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41340061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com