PyQt4 QWizard: Как отключить кнопку возврата на одной странице?

Я хотел бы отключить кнопку "Назад" на странице 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 я нашел метод setBackEnabled(),

С self.setBackEnabled(page1, False) Я не могу вызвать этот метод. Это говорит:

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

Я делаю что-то неправильно?

Или этот метод недоступен в Python?

1 ответ

Решение

Пример, который, кажется, работает:

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()
Другие вопросы по тегам