這篇教程講解如何使用qt creator來為你的pyside2專案建立圖形介面。你需要使用qt creator來設計和修改你的使用者介面(ui檔案)。
如果你不知道怎麼使用qt creator,可以看using qt designer這篇文章。
在qt creator中,新建乙個qt design form,選擇「main window」作為模板,儲存為mainwindow.ui。在介面上放乙個centralwidget布局,然後在中間新增乙個qpushbutton元件。
你的mainwindow.ui檔案看起來應該差不多是這樣的:
<?xml version="1.0" encoding="utf-8"?>
mainwindow00
400300
mainwindow
11080201
81
pushbutton
00400
20
top*******area
false
現在,有兩種方法來在python中使用你的ui檔案,供你選擇。
使用pyside2-uic工具,可以將ui檔案轉換為python類檔案。在系統命令行中執行下面命令即可:
pyside2-uic mainwindow.ui > ui_mainwindow.py
生成的ui_mainwindow.py檔案可以直接被引用:
from ui_mainwindow import ui_mainwindow
我們需要建立乙個ui_mainwindow的子類來使用。可以看看完整的**來理解這個用法:
import sys
from pyside2.qtcore import qfile
from ui_mainwindow import ui_mainwindow
class mainwindow(qmainwindow):
def __init__(self):
super(mainwindow, self).__init__()
self.ui = ui_mainwindow()
self.ui.setupui(self)
if __name__ == "__main__":
window = mainwindow()
window.show()
在if語句裡的內容我們都認識。在我們定義的子類裡只加了兩行**,用來載入我們用ui檔案生成的python類檔案:
self.ui = ui_mainwindow()每次修改ui檔案後,你都需要重新執行pyside2-uic將其轉換為python類檔案。self.ui.setupui(self)
我們可以用qtuitools模組直接載入ui檔案:
from pyside2.qtuitools import quiloader
quiloader讓我們可以實時直接呼叫ui檔案:
ui_file = qfile("mainwindow.ui")
ui_file.open(qfile.readonly)
loader = quiloader()
window = loader.load(ui_file)
window.show()
完整**如下:
# file: main.py
import sys
from pyside2.qtuitools import quiloader
from pyside2.qtcore import qfile
if __name__ == "__main__":
ui_file = qfile("mainwindow.ui")
ui_file.open(qfile.readonly)
loader = quiloader()
window = loader.load(ui_file)
ui_file.close()
window.show()
使用以下命令列即可執行這個程式:
python main.py
PySide2使用ui檔案的兩種方法
在命令列執行如下命令 pyside2 uic mainwindow.ui ui mainwindow.py使用時直接匯入 from ui mainwindow import ui mainwindow在建立我們自己的類時就可以使用 如 class mainwindow qmainwindow def...
Pyside2開發環境搭建
pip install index url pyside2 trusted host download.qt.io 要分為三個步驟 開啟qtdesigner繪製視窗 將ui檔案轉換為py檔案供主程式呼叫 主視窗全域性初始化。使用過c 版本qt的老玩家 使用者 都知道,qtdesigner是乙個非常好...
pyside2設計GUI的發布
關於選擇pyside2的原因,裡有詳細說明,也可以參考對應的bilibili鏈結。發布程式需要的pyinstaller pip install pyinstallerpyinstaller f py noconsole hidden import pyside2.qtxml生成三個資料夾和乙個 sp...