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

Python PyQt4 QWizard:如何在单个页面上禁用后退按钮?,python,pyqt,pyqt4,pt,Python,Pyqt,Pyqt4,Pt,我想禁用QQ向导页面上的“后退”按钮 我的类继承自QWizard和生成的文件。看起来是这样的: 从PyQt4导入QtGui class WizardClass(QtGui.QWizard, file.Ui_Wizard): def __init__(self, model): # Call super constructors QtGui.QWizard.__init__(self) self.setupUi(self)

我想禁用QQ向导页面上的“后退”按钮

我的类继承自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
在这里我找到了方法
setBackEnabled()

启用了self.setback(第1页,False)后,我无法调用此方法。它说:

"AttributeError: 'WizardClass' object has no attribute 'setBackEnabled'"
我做错什么了吗


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

一个似乎有效的示例:

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()

语句
self.button(QWizard.BackButton).setEnabled(False)
对我的向导没有影响。(对我来说就像一个空方法!?)是否可以在某个地方指定页面?只能在特定页面上禁用“后退”按钮。哦!这对我有用。如果您只希望它应用于一个页面(我没有意识到这一点),那么应该在该页面的QtWizardPage.initializePage()中调用它,并在.cleanupPage()中重新启用它。如果只是最后一页,您可以专门设置选项:
.setEnabled(False)
适用于常用按钮,但不适用于“上一步”和“下一步”等向导按钮。不过,重新实现
.initializePage()
是个好主意。请在新答案或我的编辑中分享最终有效的内容。问题仍未解决。在我看来,有两种不同类型的按钮(在QWizard中!):1:我自己实现的按钮2:Qt实现的按钮(如每页上的“后退”和“下一步”或最后一页上的“完成”)对于第一种按钮,您的解决方案
按钮。setEnabled(False)
有效。但问题是在单个页面上禁用“后退”按钮(由Qt实现)。我仍在寻找一种方法来做到这一点。我正在使用PyQt4和Qt设计器。也许是这两个原因中的一个造成了问题。