2014-09-17 6 views
1

Я заказал нелинейный мастер с pyqt4. Я переопределил функцию nextId() с PyQt4.QtGui.QWizardPage.PyQt: Получить идентификатор определенной страницы QWizard

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

Смежные вопросы