我想在 Qt Designer 中设计我的 QWizardPages,我想用 PySide2 将它们加载到我的 Python 程序中。以前我一直在使用 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 直接显示 Finish 按钮。相反,我得到两个 QWizardPages,如下图所示:
有人可以告诉我发生了什么事吗?
(我使用 PyQt5 和以下代码获得了预期的结果:https ://pastebin.com/6W2sx9M1 )