PyQt: получить идентификатор конкретной страницы QWizard.

Я заказываю дизайн нелинейного мастера с pyqt4, я переопределил nextId() функция от PyQt4.QtGui.QWizardPage,

self.page1.nextId = self.nextId_page1

def nextId_page1(self):
    if radio_button.isChecked():
        return 2

    return 3

Код выше работает нормально. Но когда я вставляю другую страницу в начале мастера, мне нужно изменить возвращаемые значения (2 и 3) в функции выше. Есть ли возможность получить идентификатор конкретной страницы? Я хотел бы иметь что-то подобное:

def nextId_page1(self):
    if radio_button.isChecked():
        return get_id_of_page(name_of_page_2)

    return get_id_of_page(name_of_page_3)

1 ответ

Решение

Если предположить, self ссылается на QWizard:

def nextId_page1(self):
    if radio_button.isChecked():
        return self.currentId()+1

    return self.currentId()+2

Это простой ответ.

Для произвольного перехода на страницу:

Обратите внимание, что добавление ваших страниц с setPage скорее, чем addPage позволяет явно указывать идентификаторы для каждой страницы. page(i) позволяет вам получить каждую страницу по идентификатору, и pageIds получает список используемых в настоящее время идентификаторов; Кажется, не существует очевидного "какой идентификатор этой страницы", но два предыдущих метода позволили бы вам быстро найти любую данную страницу.

Другие вопросы по тегам