• <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>
  • 推廣 熱搜: csgo  vue  angelababy  2023  gps  新車  htc  落地  app  p2p 

    PyQT5速成教程-2 Qt Designer介紹與入門

       2023-08-18 網絡整理佚名2230
    核心提示:(資源瀏覽器),資源瀏覽器中可以添加相應地如圖片素材,作為Label或等控件的背景圖片等。通過保存并使用記事本等軟件打開,我們可以看到.py文件,從而使得我們可以使用語言在設計的GUI上面編程。來制作界面的話,我們將會一次次地調試程序,來講按鈕和Label等放在合適的位置,這將是極其痛苦的過程。的UI設計的時候,也不用重新編寫代碼,而只需對更改的部分做稍微的修改即可。

    PyQT5 速成課程 -

    本文版權歸沈清陽所有,轉載請聯系作者! Qt簡介

    在PyQt中編寫UI界面可以直接通過代碼實現,也可以通過Qt實現。 Qt的設計符合MVC架構,實現了視圖與邏輯的分離,從而實現了開發的便利性。 Qt中的操作方式非常靈活。 通過拖放放置控件,可以隨時查看控件的效果。 Qt生成的.ui文件(本質上是XML格式文件)也可以通過工具轉換為.py文件。

    Qt 與 PyQt5-tools 包一起安裝,其安裝路徑位于“安裝路徑\Lib\site-\pyqt5-tools”下。

    如果想啟動Qt,可以直接進入上述目錄,雙擊.exe打開Qt; 或者將上面的路徑添加到環境變量中,在命令行輸入打開; 或將其配置為外部工具以在 .

    下面以Qt的配置方法為例進行說明。

    PyQt5工具配置在

    打開,選擇->工具->工具,點擊左上角綠色加號。

    工具

    填寫Name(以后使用時,名稱無所謂)。 選擇我們安裝的PyQt5-tools下的.exe。 然后選擇我們的工作目錄。 然后點擊確定,然后添加為外部工具。

    然后添加PyUIC(UI轉換工具),PyUIC是.exe,在安裝目錄下的目錄下,同樣將其設置為我們的工作目錄,然后填寫以下代碼:

    -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py
    

    最后添加pyrcc用于PyQt5的資源文件轉碼。 具體配置同上,填寫:

    $FileName$ -o $FileNameWithoutExtension$_rc.py
    

    退出前,單擊“應用”保存配置。 配置完成后,會添加3個工具。

    配置工具

    點擊打開界面。

    Qt 界面簡介

    剛打開Qt后,會彈出如下圖所示的窗口。

    模板窗口

    創建一個新的Form給出了5個模板,其中Main是最常用的。 這里我們選擇創建一個Main。

    界面

    上述界面最左邊的菜單是Box,它包含了PyQt5中的所有組件。 我們可以將左側的Box中的View、Input等組件拖到中間的窗口中。

    點擊Form ->(快捷鍵是Ctrl+R)可以預覽我們設計的界面,也可以使用In選擇在對應的主題風格中預覽。

    我們拖動一個Label,進入主窗口(Main)。

    主窗口

    這時,在右上角(對象查看器)可以看到主窗口中放置的對象(標簽和)及其對應的Qt類。

    對象查看器

    以標簽為例。 這時候我們點擊Main中的標簽或者選擇Main中的標簽,然后看右邊的一個區域——(屬性編輯器)。

    屬性編輯器

    其主要屬性如下: 名稱含義

    控制對象名稱

    對應的寬高和坐標

    小部件大小策略

    最小寬度和高度

    最大寬度和高度

    字體

    字體

    光標

    ...

    ...

    PS:設置 和 為相同值后,窗口的大小就固定了。

    右下部分是(資源瀏覽器),可以添加相應的圖片素材、Label或其他控件的背景圖片等。

    資源瀏覽器

    Qt 用戶界面文件

    使用 Qt 保存的文件是 .ui 格式的文件。

    通過保存并用記事本等軟件打開,我們可以看到.ui文件的內容如下:

    
    
     MainWindow
     
      
       
        0
        0
        800
        600
       
      
      
       MainWindow
      
      
       
        
         
          240
          80
          72
          15
         
        
        
         TextLabel
        
       
       
        
         
          240
          120
          93
          28
         
        
        
         PushButton
        
       
      
      
       
        
         0
         0
         800
         26
        
       
      
      
     
     
     
    
    

    從.ui文件的第一行我們可以看出,它的本質是一個XML文件。 主窗口中所有控件的相關屬性都存儲在ui文件中。 使用XML文件來存儲UI文件具有很高的可讀性和可移植性,因此我們可以輕松地將.ui文件轉換為.py文件,以便我們可以使用該語言在設計的GUI上進行編程。

    將 .ui 文件轉換為 .py 文件

    將 .ui 文件轉換為 .py 文件很容易,我們之前設置了該工具。 如果你沒有在 中設置這個工具,或者根本不使用它,你可以在命令行中使用以下命令將.ui 轉換為.py。

    pyuic5 - o 目標文件名.py 源文件名.ui
    

    或者直接在 中,找到.ui文件,右鍵打開菜單,找到Tools->PyUIC。 點擊后,我們會在對應的項目目錄下生成一個.py文件。 (注意.ui文件必須存放在我們Tools中設置的對應工程目錄下)

    皮尤卡

    轉換完成后,打開.py文件。

    # -*- coding: utf-8 -*-
    # Form implementation generated from reading ui file 'mainWindow.ui'
    #
    # Created by: PyQt5 UI code generator 5.10.1
    #
    # WARNING! All changes made in this file will be lost!
    from PyQt5 import QtCore, QtGui, QtWidgets
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(800, 600)
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.label = QtWidgets.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(240, 80, 72, 15))
            self.label.setObjectName("label")
            self.pushButton = QtWidgets.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(240, 120, 93, 28))
            self.pushButton.setObjectName("pushButton")
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            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"))
            self.label.setText(_translate("MainWindow", "TextLabel"))
            self.pushButton.setText(_translate("MainWindow", "PushButton"))
    

    觀察上面的文件我們可以看出,如果不使用Qt制作界面,我們會一次又一次的調試程序,將按鈕和Label放到合適的位置將是一個極其痛苦的過程。 而通過Qt,我們可以快速制作UI并生成代碼,從而實現快速UI開發。

    使用轉換后的.py文件

    但是,此時運行轉換后的文件無法顯示任何窗口。 因為這個文件只定義了主窗口及其控件的代碼,并沒有程序入口的代碼。 為了堅持視圖和邏輯分離的原則,我們編寫了一個新的腳本來調用這個文件并創建一個窗口。

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from mainWindow import *
    class MyWindow(QMainWindow, Ui_MainWindow):
        def __init__(self, parent=None):
            super(MyWindow, self).__init__(parent)
            self.setupUi(self)
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        myWin = MyWindow()
        myWin.show()
        sys.exit(app.exec_())
    

    通過上面的代碼,我們繼承了該類,使用其構造函數構造了主窗口,定義了程序的入口,并通過創建對象的方式創建了Qt窗口。 其運行結果如下:

    Qt窗口

    通過以上操作,我們熟悉了從Qt設計界面到業務邏輯實現的一般工作流程。 通過這個工作流程,可以簡化工作,提高速度。

    通過將視圖與業務邏輯分離,每次改變Qt的UI設計時都不需要重新編寫代碼,而只需要稍微修改改變的部分。

    下一講我們將繼續講解Qt的使用。

    如果覺得文筆不錯的話就點個贊吧?~

    感謝您的支持!

     
    反對 0舉報 0 收藏 0 打賞 0評論 0
     
    更多>同類資訊
    推薦圖文
    推薦資訊
    點擊排行
    網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報
    Powered By DESTOON
     
    三级精品影视国产,欧美乱伦免费综合,亚洲a在线中文,人妻色综合网站
  • <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>