全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

一、內容介紹

基於 Python 與 PyQt 5 學習 GUI 編程,先簡單瞭解 Qt 各個組件的使用方法,然後帶你開發一個瀏覽器。

知識點:

  • 使用 Qt 創建窗口
  • Qt 的信號與槽機制
  • Qt 各個組件的使用

流程:

  • Qt 安裝
  • 創建窗口
  • 信號與槽
  • 工具欄與菜單
  • 窗口部件
  • 佈局
  • 對話框

二、開始教程(文末含一份Python學習資料)

Qt 安裝

Qt 是一個跨平臺的C++應用程序開發框架。廣泛用於開發GUI程序,這種情況下又被稱為部件工具箱。也可用於開發非GUI程序,比如控制檯工具和服務器。

pip install PyQt5

如果缺少對應的包,可以自行去下載。

引入 PyQt5:

import PyQt5

創建窗口

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

Qt 的執行機制:

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

信號與槽

Qt 中每種組件都有所謂的信號槽(slot)機制。可用來將信號與相應的處理函數進行連接綁定。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

只給出了部分新添加的代碼,原有的代碼統一使用 ... 略過

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

運行程序

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

根據打印出來的字典鍵值可以發現

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

修改如下:

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

結果

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

想更直觀的理解信號與槽,可以進一步修改代碼,由創建按鈕響應的按鈕事件展示信號和槽機制。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

而且Qt 還支持自定義信號,能夠由創建 pyqtSignal 對象實例定義信號對象。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

以上過程就是將按鈕按壓信號與 _click_button 槽關聯

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

只是為了展示 Qt 具備有自定義信號的功能

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

工具欄與菜單

一般使用的軟件窗口頂部會有一條工具欄或者菜單欄。 由 Qt 提供的 QToolBar 創建工具欄。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

因為還沒有給工具欄添加任何實際功能,所以工具欄只可以看的到一條空白的橫杆。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

然後為工具欄添加實體按鈕,而且在窗口底部顯示提示信息

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

接下來為應用添加菜單欄。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

當然我們還可以實現二級菜單。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

窗口部件

Qt 還有一個強大的部件類 QWidgets ,基於這個類派生出很多其它小部件

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

佈局

Qt 支持多種控件佈局方式,主要有:

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

垂直佈局

為了更加直觀的看到佈局效果

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

水平佈局

知道了垂直佈局之後,水平佈局也相當簡單

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

網格佈局

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

對話框

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

使用 QtWebKit 實現瀏覽器

流程如下:

  • 依賴項的安裝
  • 編程實現

效果

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

安裝 QtWebKit 模塊

pip install pyqt5.qtwebkit

QtWebKit 是一個基於開源項目 WebKit 的網頁內容渲染引擎,藉助該引擎可以更加快捷地將萬維網集成到 Qt 應用中。

瀏覽器應該要具備以下幾個功能:

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

創建瀏覽器

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

程序中使用到的圖片資源可以通過以下命令下載:

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

添加導航欄

在這裡我們要為瀏覽器添加導航欄

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

現在我們不僅為瀏覽器添加了前進、後退、停止加載和刷新的按鈕,同時還利用 QWebView 封裝的槽實現了這些按鈕的實際功能。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

再給瀏覽器添加地址欄。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

目前地址欄還不支持直接輸入地址回車訪問,接下來我們便來實現這點。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

添加標籤頁

為了添加標籤頁,我們對程序的 web 界面實現做較大的改動。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

繼續完善標籤欄,為標籤欄添加按鈕能動態地擴展標籤頁面。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

現在標籤欄還有個非常突出的問題,就是沒有關閉按鈕!接下來我們將來添加關閉功能。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

這裡我們不僅給標籤頁添加了關閉按鈕,還將標籤標題自動設置為網頁所提供的標題。

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!

私信小編001即可獲取Python學習資料一份

全網最簡明的PyQt 5 教程,神級Python現場開發一個專屬瀏覽器!


分享到:


相關文章: