
歡迎來到我的部落格,希望這篇文章對你有所幫助,如果覺得不錯,請點贊搜藏哈。
文章目錄
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檔案轉化為類
用這種方法使用到時沒有問題,應該是适用于那種前後端分離的情況,前端UI已經全部制作完成,後端拿到現成的UI檔案來實作邏輯邏輯控制即可,要是UI檔案和開發是同時進行,那麼這種方法就不咋合适了,總不能沒更新一個UI就執行一次pyside6-uic 吧 。是以我還是要用第二種了,直接加載的方式。
直接加載UI檔案可以很好的規避掉第一種方式中每次更新UI檔案都需要重新編譯的一次的問題。使用這種加載UI檔案的方式,需要用到QUiLoader子產品,隻需要引入即可
from PySide6.QtUiTools import QUiLoader
幫助文檔中加載UI檔案代碼如下
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_())
阿西吧,簡直就是災難現場,這幾天就是一天研究一句話,這進度,都沒法和蝸牛比。要崩潰了,不搞了。
其實動态加載和靜态加載都有各自的優缺點,這将像是你你和你女朋友在一起的時間一樣,可以短了刺激,長了就是陪伴,這個也是要結合着使用,可以先在動态裡面吧界面搞定了,完了在轉成靜态的,配合Python進行進階開發。