2017-02-10 12 views
0

QtCreator - > QtDesignerのheplでGUIを作成しました。このファイルはmainwindow.uiと呼ばれます。 pyuic5の助けを借りて、私はmainwindow.pyPythonで、QtDesignerで作成したGUIモジュールファイルの使い方

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にそれをインポートしたい:

#!/usr/bin/env python3 

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


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


if __name__ == "__main__": 
    main() 

..しかし、私はそれを実行すると何も起こりません。 main.pyのGUIモジュールを使用するにはどうすればよいですか?

+1

PyQtのドキュメントを参照してください。http://pyqt.sourceforge.net/Docs/PyQt5/designer.html –

答えて

0

私はそれを自分で考えました。 QWidgetsetCentralWidgetを持っていないため

#!/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() 

私のクラスメイン(QMainWindow)親QMainWindowなくQWidgetを持っている必要があります:mainwindow.pyと呼ばれ、私のmain.pyは次のようになりますが、QtCreatorで作成し、PythonでGUIファイルを使用するにはmainwindow.pyに必要なメソッドです。

関連する問題