天天看點

05_HUD_Qt_for_Python開發之路3

05_HUD_Qt_for_Python開發之路3

歡迎來到我的部落格,希望這篇文章對你有所幫助,如果覺得不錯,請點贊搜藏哈。

文章目錄

HUD_Qt_for_Python開發之路3

1 UI檔案與Python結合

1.1 将UI檔案編譯為一個Python類(靜态加載)

1.2 問題

2 直接加載UI檔案(動态加載)

2.1 加載UI檔案

2.2 問題

3 互動問題

總結

這小節将研究下UI檔案怎麼與Python結合,還是老樣子,先找幫助文檔,看看有沒有幫助。

通過檢視幫助文檔得知,UI檔案與Python結合有兩種方式

将UI檔案編譯為一個Python類使用

直接在Python中加載UI檔案

此時加入我們的UI檔案名稱為mainwindow.ui檔案,那麼需要執行以下指令,來将我們的UI檔案轉化為類

05_HUD_Qt_for_Python開發之路3

用這種方法使用到時沒有問題,應該是适用于那種前後端分離的情況,前端UI已經全部制作完成,後端拿到現成的UI檔案來實作邏輯邏輯控制即可,要是UI檔案和開發是同時進行,那麼這種方法就不咋合适了,總不能沒更新一個UI就執行一次pyside6-uic 吧 。是以我還是要用第二種了,直接加載的方式。

直接加載UI檔案可以很好的規避掉第一種方式中每次更新UI檔案都需要重新編譯的一次的問題。使用這種加載UI檔案的方式,需要用到QUiLoader子產品,隻需要引入即可

from PySide6.QtUiTools import QUiLoader

幫助文檔中加載UI檔案代碼如下

05_HUD_Qt_for_Python開發之路3
import sys
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QFile, QIODevice

if __name__ == "__main__":
    app = QApplication(sys.argv)

    ui_file_name = "mainwindow.ui"
    ui_file = QFile(ui_file_name)
    if not ui_file.open(QIODevice.ReadOnly):
        print(f"Cannot open {ui_file_name}: {ui_file.errorString()}")
        sys.exit(-1)
    loader = QUiLoader()
    window = loader.load(ui_file)
    ui_file.close()
    if not window:
        print(loader.errorString())
        sys.exit(-1)
    window.show()

    sys.exit(app.exec_())
      
05_HUD_Qt_for_Python開發之路3

阿西吧,簡直就是災難現場,這幾天就是一天研究一句話,這進度,都沒法和蝸牛比。要崩潰了,不搞了。

其實動态加載和靜态加載都有各自的優缺點,這将像是你你和你女朋友在一起的時間一樣,可以短了刺激,長了就是陪伴,這個也是要結合着使用,可以先在動态裡面吧界面搞定了,完了在轉成靜态的,配合Python進行進階開發。