Я хочу спроектировать свои QWizardPages в Qt Designer, и я хочу загрузить их в мою программу Python с PySide2. Ранее я использовал PyQt5 без проблем, но переход на PySide2 кажется более сложным, чем ожидалось.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я добавляю QWizardPage в свой QWizard, страница действительно добавляется в мастер, но также добавляется и другая (пустая) страница. Я не могу понять, что я делаю неправильно, поэтому мне было интересно, может ли кто-нибудь взглянуть.
Я пытался добавить страницы с функциями addPage () и setPage (), но они дают одинаковые результаты. Я также заметил, что когда я явно устанавливаю заголовок страницы с помощью setTitle (), пустая (нежелательная) страница получает этот заголовок, но не страницу, которую я разработал в Qt Designer.
import os
import sys
from PySide2.QtWidgets import QWizard, QWizardPage, QApplication
from PySide2.QtCore import QFile
from PySide2.QtUiTools import QUiLoader
from enum import Enum
class MyWizard(QWizard):
def __init__(self):
super().__init__()
self.setPage(PageNumbers.page_one.value, PageOne(self))
class PageOne(QWizardPage):
def __init__(self, parent):
super().__init__(parent)
ui_file = os.path.join(__file__, '..', 'pageOne.ui')
file = QFile(ui_file)
file.open(QFile.ReadOnly)
loader = QUiLoader()
loader.load(file, parent)
file.close()
self.setTitle("This is another test Title")
class PageNumbers(Enum):
page_one = 1
if __name__ == '__main__':
app = QApplication(sys.argv)
wizard = MyWizard()
wizard.show()
app.exec_()
То, что я ожидал бы, это иметь только одну QWizardPage, показывающую непосредственно с кнопкой Готово. Вместо этого я получаю две страницы QWizardPages, как показано на этом рисунке:
Может кто-нибудь сказать мне, что происходит?
(я получаю ожидаемый результат, используя PyQt5 со следующим кодом: https://pastebin.com/6W2sx9M1)