【发布时间】:2015-07-12 22:15:05
【问题描述】:
如果用户输入了足够的数据,有没有办法在向导中途将下一步按钮更改为完成按钮? 下面的示例使用 HaveFinishButtonOnEarlyPages 集 - 但是如果用户选择单选按钮,我想做的是用完成按钮替换下一个按钮。这可能吗?
from PyQt4 import QtGui
from PyQt4.QtGui import QWizard
import sys
def createPage1():
page = QtGui.QWizardPage()
page.setTitle("Page 1")
page.setSubTitle("Enter some data, if you don't want to enter any more data select finish early.")
essentialLabel = QtGui.QLabel("Essential data:")
essentialLineEdit = QtGui.QLineEdit()
finishEarlyRB = QtGui.QRadioButton("Select to finish wizard early")
layout = QtGui.QGridLayout()
layout.addWidget(essentialLabel, 0, 0)
layout.addWidget(essentialLineEdit, 0, 1)
layout.addWidget(finishEarlyRB, 1, 0)
page.setLayout(layout)
return page
def createPage2():
page = QtGui.QWizardPage()
page.setTitle("Page 2")
page.setSubTitle("Enter some more data.")
nonEssentialLabel = QtGui.QLabel("Non essential data:")
nonEssentialLineEdit = QtGui.QLineEdit()
layout = QtGui.QGridLayout()
layout.addWidget(nonEssentialLabel, 0, 0)
layout.addWidget(nonEssentialLineEdit, 0, 1)
page.setLayout(layout)
return page
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
wizard = QtGui.QWizard()
wizard.setOption(QWizard.HaveFinishButtonOnEarlyPages, on=True)
wizard.addPage(createPage1())
wizard.addPage(createPage2())
wizard.show()
sys.exit(wizard.exec_())
【问题讨论】:
-
从用户体验的角度来看,我会说将完成按钮与下一步按钮一起设置并在相关时启用它会更清晰。