我也是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_())
此代码正在使用我在网上找到的教程。但是,当我运行它时,它只显示一个没有标题的空窗口。
我花了很多时间试图弄清楚我的代码有什么问题,但没有任何进展。任何帮助将不胜感激。