我应该将什么添加到从pyuic5生成的.py文件中,这样当我执行.py时,gui会出现?

时间:2018-02-15 11:22:03

标签: python-3.x pyqt5

当我将.ui文件从Qt转换为.py时,我尝试运行它,但它没有显示我用Qt创建的gui。我试过添加

 if __name__ == '__main__':

    import sys

    app = QApplication(sys.argv)

    screen = Ui_Form()
    screen.show()

    sys.exit(app.exec_())

在我的代码末尾,但它返回一个错误:

  

回溯(最近一次呼叫最后一次):文件" C:\ Path ***。py",第12行,   在       类Ui_Form(对象):文件" C:\ Path ****。py",第355行,在Ui_Form中       screen = Ui_Form()NameError:name' Ui_Form'未定义

这是我的代码

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow

class Ui_Form(object):
  def setupUi(self, Form):
    Form.setObjectName("Form")
    Form.resize(490, 264)
*insert some more generated codes here*

def retranslateUi(self, Form):
    _translate = QtCore.QCoreApplication.translate
    Form.setWindowTitle(_translate("Form", "Form"))
    self.Load_4.setText(_translate("Form", "Load"))
    self.Load_5.setText(_translate("Form", "Load"))
*insert some more generated codes here*

1 个答案:

答案 0 :(得分:1)

您不应该向pyuic工具生成的文件添加更多代码。相反,子类化文件中的Ui类。通过这样做,您可以更改gui并再次使用pyuic工具,而不会丢失您编写的所有代码。它看起来像这样:

(在另一个档案中)

from pyuic_generated_file import UiForm

class MainWindow(QtWidgets.QMainWindow, Ui_Form):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.setupUi(self)
        # code here

然后在你的主要方法中:

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())