在python中导入和运行生成的pyqt gui无法正常工作

时间:2014-10-21 20:33:00

标签: python pyqt enthought qt-designer canopy

我也是python和pyqt的新手。我使用canopy作为python编辑器。

我使用qt designer(版本5)设计了一个简单的gui,包括两个按钮和一个graphicsView。我使用pyuic将它转换为名为TheMainGUI的python文件,如下所示:

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(467, 268)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.FetchButton = QtGui.QPushButton(self.centralwidget)
        self.FetchButton.setGeometry(QtCore.QRect(30, 40, 111, 31))
        self.FetchButton.setObjectName(_fromUtf8("FetchButton"))
        self.PlotButton = QtGui.QPushButton(self.centralwidget)
        self.PlotButton.setGeometry(QtCore.QRect(30, 120, 111, 31))
        self.PlotButton.setObjectName(_fromUtf8("PlotButton"))
        self.graphicsView = QtGui.QGraphicsView(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(190, 10, 256, 192))
        self.graphicsView.setObjectName(_fromUtf8("graphicsView"))
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 467, 21))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
        self.FetchButton.setText(_translate("MainWindow", "Fetch User Data", None))
        self.PlotButton.setText(_translate("MainWindow", "Plot User Track", None))

我想将这个gui代码导入到另一个python文件中,以便为gui添加一些功能。我不想编辑相同的gui python文件,因为我可能需要在实现时更改它,它会擦除​​我的代码。

因此,我创建了另一个python文件,包括以下代码:

import sys
from PyQt4 import QtGui
from TheMainGUI import Ui_MainWindow

class Main(QtGui.QMainWindow,Ui_MainWindow):
    def __int__(self):
       QtGui.QMainWindow.__init__(self)
       self.ui= Ui_MainWindow()
       self.ui.setupUi(self)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

此代码正在使用我在网上找到的教程。但是,当我运行它时,它只显示一个没有标题的空窗口。

我花了很多时间试图弄清楚我的代码有什么问题,但没有任何进展。任何帮助将不胜感激。

0 个答案:

没有答案