簡體   English   中英

如何生成在Taurusdesigner或Qt下創建的GUI的Python代碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM