![](/img/trans.png)
[英]How to launch and terminate a python script from a QT GUI app created in QT Creator 4.2.0
[英]How to generate Python code of GUI created under Taurusdesigner or Qt?
首先,讓我告訴您,我是Qt和Python的新手。
我正在使用Qt(Taurusdesigner)創建我的GUI。 啟動Qt(Taurusdesigner)之后,我使用以下命令為該特定GUI生成python代碼:
taurusuic4 -x -o file.py file.ui
or
pyuic4 -x -o file.py file.ui
在命令行上執行此命令后,我可以生成python文件,但是自動生成的類如下所示:
class MainWindow(object):
def setupUi(self, MainWindow):
當我在Google上搜索任何幫助時,我會發現類似以下內容的課程:
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
我將如何使用Qt(Taurusdesigner)生成第二類文件?
為什么我的課程和在互聯網上尋求幫助的課程在語法上存在差異。 請對此提供幫助。 提前致謝。
taurusuic4/pyuic4
生成的ui模塊應該導入到您的主應用程序中。 您不需要使用-x
選項,顯然,您應該選擇比“文件”更好的模塊名稱:
taurusuic4 -o mainwindow.py file.ui
您的主應用程序模塊應如下所示:
from PyQt4.QtGui import QMainWindow
from mainwindow import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.handleButton)
def handleButton(self):
print('Hello World!')
這種方法意味着Qt(Taurus)Designer中的所有小部件最終都將作為MainWindow
類的屬性。 另一種方法是將ui元素放在單獨的名稱空間中:
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.handleButton)
setupUI
和__init__
是MainWindow
類的兩個方法。 對於一個類,可以有任意數量的方法,您可以按自己喜歡的順序放置它們。
總有一個__init__
方法,它稱為構造函數。 創建對象時(例如,執行myWindow=MainWindow()
)將調用此方法。 通常將其放在開頭,因為它將首先被調用。 專門針對QT,您必須使用super
調用父級的構造函數。
setupUI
是設計人員創建的用於布局等工作的方法。 應該在構造函數中調用它。
您的代碼應如下所示:
class MainWindow(object):
def setupUi(self, MainWindow):
#code made by the designer
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
#some code
def another_method(self):
#some more code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.