【发布时间】:2015-06-25 08:05:35
【问题描述】:
我创建了一个包含多个页面的QWizard 对象,当单击特定页面的NextButton 时,我试图打开一个文件。起初,我尝试了QWizard.NextButton.clicked.connect(),附带:
"AttributeError: 'WizardButton' 对象没有属性 'clicked''。
之后,我在 Qt 助手中搜索了“WizardButton”,没有得到任何有用的信号发出,是否可以像QPushButton.clicked.connect() 那样实现?
具体页面如下:
class AccountPage(QWizardPage):
def __init__(self, parent=None):
super(AccountPage, self).__init__(parent)
self.setTitle("Account Information")
NameLabel = QLabel("&Name:")
NameLineEdit = QLineEdit()
NameLabel.setBuddy(NameLineEdit)
EmailLabel = QLabel("&Email Address:")
EmailLineEdit = QLineEdit()
EmailLabel.setBuddy(EmailLineEdit)
PwdLabel = QLabel("&Password:")
PwdLineEdit = QLineEdit()
PwdLabel.setBuddy(PwdLineEdit)
self.registerField('Name*', NameLineEdit)
self.registerField('EmailAddress*', EmailLineEdit)
self.registerField('Password*', PwdLineEdit)
layout = QGridLayout()
layout.addWidget(NameLabel, 0, 0)
layout.addWidget(NameLineEdit, 0, 1)
layout.addWidget(EmailLabel, 1, 0)
layout.addWidget(EmailLineEdit, 1, 1)
layout.addWidget(PwdLabel, 2, 0)
layout.addWidget(PwdLineEdit, 2, 1)
self.setLayout(layout)
QWizard.NextButton.clicked.connect(self.setMB)
def setMB(self):
try:
with open('mb.ini', 'w') as actInfo:
actInfo.write('sj')
except IOError as err:
print('mb.ini error:' + str(err))
【问题讨论】:
-
你能提供一些代码吗(见MCVE)?
-
@tmoreau 抱歉,现在添加代码
-
如果点击“下一步”时必须调用
setMB,为什么不在下一页__init__方法中调用呢? -
是的!这可以工作。那么像
QPushButton.clicked.connect()这样的流程就没有办法实现了吗?