設(shè)計GUI淳玩,大家首先想到的是拖放一個個控件,然后設(shè)置屬性眼坏,再響應(yīng)對應(yīng)的操作菇肃,收發(fā)數(shù)據(jù)地粪,類似于靜態(tài)HTML。
其實前端流行趨勢早就用動態(tài)HTML琐谤,諸如大家熟悉的Vue.js蟆技、Angular等前端框架。Qt GUI設(shè)計也響應(yīng)這種潮流斗忌,早就推出了QML(Qt 描述性語言)付魔,使用更方便、更直觀飞蹂,以后會以QML為主流几苍,我們放到下一講介紹。
但首先陈哑,還是先從QWidget入手妻坝,畢竟是基礎(chǔ),需要了解控件惊窖、布局刽宪、信號與槽函數(shù)。
此類教程已很多界酒,我就不重復了圣拄。推薦學習最新支持Qt6的:
PyQt6 中文教程 (gitbook.io)
對應(yīng)英文版目錄在這里:
Table of contents
- Introduction PyQt6簡介
- Date and time 日期與時間
- First programs
- Menus and toolbars 菜單與工具欄
- Layout management 布局設(shè)計
- Events and signals 事件與信號
- Dialogs 對話框
- Widgets 組件:QCheckBox、QPushButton毁欣、QSlider庇谆、QProgressBar和QCalendarWidget
- Widgets II 組件2:QPixmap, QLineEdit, QSplitter 和 QComboBox
- Drag & drop 拖放操作
- Painting 繪圖
- Custom widgets 自定義組件
- The Tetris game 俄羅斯方塊
PySide6官方文檔 https://doc.qt.io/qtforpython-6/
由于PySide與PyQt基本上是可替換的,先學習哪種都行凭疮。
下一步饭耳,開發(fā)完整的小應(yīng)用來練手
比如上位機軟件、桌面鬧鐘等执解。
比如 桌面小寵物:
- 頭條上學到的寞肖,已改成qt6代碼:https://github.com/kevinqqnj/desktop-pet
- 功能:
- 隨機更換圖片和文字
- 無邊框透明窗口
- 可拖拽
- 在系統(tǒng)托盤顯示
- 自定義右鍵菜單
- 可以用nuitka打包成.exe文件,16MB左右
下一集預告
QML offers an alternative approach to create User Interfaces, compared to Widgets, and it was originally motivated from mobile applications development. Together with the Qt Quick module, it provides access to interact with mobile device using actions like taps, drag and drop, animations, states, transitions, drawer menus, etc.
- Widget主要集中在金融衰腌、軍工新蟆、安防、航天右蕊、船舶琼稻、教育等領(lǐng)域,qml主要集中在汽車儀表尤泽、車機欣簇、直播等領(lǐng)域。
- 如果應(yīng)用是用手指操作坯约,那么用 QML 更合適熊咽,如果是用鼠標操作,那么用 Widget 更合適