PyQt4 QWizard:如何在单个页面上禁用后退按钮?

时间:2014-08-05 14:59:56

标签: python pyqt pyqt4 pt

我想禁用"返回" QWizard页面上的按钮。

我的类继承自QWizard和生成的文件。它看起来像这样:

从PyQt4导入QtGui

class WizardClass(QtGui.QWizard, file.Ui_Wizard):

    def __init__(self, model):
        # Call super constructors
        QtGui.QWizard.__init__(self)
        self.setupUi(self)
        self.model = model

此处http://doc.qt.digia.com/3.3/qwizard.html#backButton我找到了方法setBackEnabled()

使用self.setBackEnabled(page1, False)我无法调用此方法。它说:

"AttributeError: 'WizardClass' object has no attribute 'setBackEnabled'"

我做错了吗?

或者这种方法在Python中不可用吗?

1 个答案:

答案 0 :(得分:2)

似乎有效的例子:

from PyQt4 import QtGui

class Wiz(QtGui.QWizard):

    def __init__(self):
        QtGui.QWizard.__init__(self)
        self.noback = []
        self.currentIdChanged.connect(self.disable_back)

    def disable_back(self, ind):
        if ind in self.noback:
            self.button(QtGui.QWizard.BackButton).setEnabled(False)

wiz = Wiz()
wiz.noback = [2]
wiz1 = QtGui.QWizardPage(wiz)
wiz2 = QtGui.QWizardPage(wiz)
wiz3 = QtGui.QWizardPage(wiz)

wiz.addPage(wiz1)
wiz.addPage(wiz2)
wiz.addPage(wiz3)

wiz.show()