在Python中,如何使用在QtDesigner中创建的GUI模块文件

时间:2017-02-10 10:48:15

标签: python-3.x qt-creator pyqt5 qt-designer

我使用QtCreator的肝脏创建了一个GUI - > QtDesigner。该文件名为mainwindow.ui。在$('#parentDiv1 #closebtn').on('click', function(){ $(this).parent().addClass('hidden') }) $('#parentDiv2 #closebtn').on('click', function(){ $(this).parent().addClass('hidden') }) 的帮助下,我创建了pyuic5

mainwindow.py

这就是它的样子:

pyuic5 mainwindow.ui > mainwindow.py

并希望在我的主脚本from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(400, 300) self.centralWidget = QtWidgets.QWidget(MainWindow) self.centralWidget.setObjectName("centralWidget") self.frame = QtWidgets.QFrame(self.centralWidget) self.frame.setGeometry(QtCore.QRect(30, 20, 341, 191)) self.frame.setFrameShape(QtWidgets.QFrame.Panel) self.frame.setFrameShadow(QtWidgets.QFrame.Sunken) self.frame.setObjectName("frame") MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QtWidgets.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 400, 23)) self.menuBar.setObjectName("menuBar") MainWindow.setMenuBar(self.menuBar) self.mainToolBar = QtWidgets.QToolBar(MainWindow) self.mainToolBar.setObjectName("mainToolBar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar) self.statusBar = QtWidgets.QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 中导入它:

main.py

......但是当我跑步时没有任何反应。我的main.py应该如何使用那个gui模块?

1 个答案:

答案 0 :(得分:0)

好的,我自己想通了。要在QtCreator中创建名为mainwindow.py的Python中使用GUI文件,我的main.py应如下所示:

#!/usr/bin/env python3

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from mainwindow import *
import sys

class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.show()


def main():
    app = QApplication(sys.argv)
    instance = Main()
    #instance.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()

我的类Main(QMainWindow)必须有父QMainWindow而不是QWidget,因为QWidget没有mainwindow.py中需要的setCentralWidget方法。< / p>