一、內容介紹
基於 Python 與 PyQt 5 學習 GUI 編程,先簡單瞭解 Qt 各個組件的使用方法,然後帶你開發一個瀏覽器。
知識點:
使用 Qt 創建窗口 Qt 的信號與槽機制 Qt 各個組件的使用流程:
Qt 安裝 創建窗口 信號與槽 工具欄與菜單 窗口部件 佈局 對話框二、開始教程(文末含一份Python學習資料)
Qt 安裝
Qt 是一個跨平臺的C++應用程序開發框架。廣泛用於開發GUI程序,這種情況下又被稱為部件工具箱。也可用於開發非GUI程序,比如控制檯工具和服務器。
pip install PyQt5
如果缺少對應的包,可以自行去下載。
引入 PyQt5:
import PyQt5
創建窗口
Qt 的執行機制:
信號與槽
Qt 中每種組件都有所謂的信號槽(slot)機制。可用來將信號與相應的處理函數進行連接綁定。
只給出了部分新添加的代碼,原有的代碼統一使用 ... 略過
運行程序
根據打印出來的字典鍵值可以發現
修改如下:
結果
想更直觀的理解信號與槽,可以進一步修改代碼,由創建按鈕響應的按鈕事件展示信號和槽機制。
而且Qt 還支持自定義信號,能夠由創建 pyqtSignal 對象實例定義信號對象。
以上過程就是將按鈕按壓信號與 _click_button 槽關聯
只是為了展示 Qt 具備有自定義信號的功能
工具欄與菜單
一般使用的軟件窗口頂部會有一條工具欄或者菜單欄。 由 Qt 提供的 QToolBar 創建工具欄。
因為還沒有給工具欄添加任何實際功能,所以工具欄只可以看的到一條空白的橫杆。
然後為工具欄添加實體按鈕,而且在窗口底部顯示提示信息
接下來為應用添加菜單欄。
當然我們還可以實現二級菜單。
窗口部件
Qt 還有一個強大的部件類 QWidgets ,基於這個類派生出很多其它小部件
佈局
Qt 支持多種控件佈局方式,主要有:
垂直佈局
為了更加直觀的看到佈局效果
水平佈局
知道了垂直佈局之後,水平佈局也相當簡單
網格佈局
對話框
使用 QtWebKit 實現瀏覽器
流程如下:
依賴項的安裝 編程實現效果
安裝 QtWebKit 模塊
pip install pyqt5.qtwebkit
QtWebKit 是一個基於開源項目 WebKit 的網頁內容渲染引擎,藉助該引擎可以更加快捷地將萬維網集成到 Qt 應用中。
瀏覽器應該要具備以下幾個功能:
創建瀏覽器
程序中使用到的圖片資源可以通過以下命令下載:
添加導航欄
在這裡我們要為瀏覽器添加導航欄
現在我們不僅為瀏覽器添加了前進、後退、停止加載和刷新的按鈕,同時還利用 QWebView 封裝的槽實現了這些按鈕的實際功能。
再給瀏覽器添加地址欄。
目前地址欄還不支持直接輸入地址回車訪問,接下來我們便來實現這點。
添加標籤頁
為了添加標籤頁,我們對程序的 web 界面實現做較大的改動。
繼續完善標籤欄,為標籤欄添加按鈕能動態地擴展標籤頁面。
現在標籤欄還有個非常突出的問題,就是沒有關閉按鈕!接下來我們將來添加關閉功能。
這裡我們不僅給標籤頁添加了關閉按鈕,還將標籤標題自動設置為網頁所提供的標題。
私信小編001即可獲取Python學習資料一份