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
получает список используемых в настоящее время идентификаторов; Кажется, не существует очевидного "какой идентификатор этой страницы", но два предыдущих метода позволили бы вам быстро найти любую данную страницу.