如果文件从 Qtdesigner .ui 转换为 .py,如何使用 show() 方法在 PyQt5 中显示弹出窗口小部件?

问题描述

我使用以下方法将 Qtdesigner 中的 .ui 文件转换为 .py: .\pyuic5.exe -x result_widget.ui -o result_widget.py

用户点击主小部件中的计算时,我试图在主小部件上显示这个小部件。 在我的主要 python 文件中,我正在做:

from result_widget.py import Ui_result
...
self.result_widget = Ui_result()
...
self.result_widget.setupUi(self)

但是,self.result_widget.setupUi(self) 替换了我的主要小部件。如何将我的 result_widget 显示为主小部件上的弹出窗口。 我看到有人建议 show() 但如果我执行 self.result_widget.show(),它会引发错误。 如何将其显示为弹出窗口? 谢谢!

解决方法

您需要创建小部件来应用 UI。

from result_widget.py import Ui_result
widget = QtWidgets.QMainWindow()
result = Ui_result()
result.setupUi(widget)
widget.show()