之前給大伙介紹了下 tkinter,有朋友希望小帥b對其它的 Python GUI 框架也說道說道,那么今天就來說說 PyQt5 如何創(chuàng)建用戶界面。Qt 是用 C++ 寫的開發(fā)工具,其中包含一個非常強大的 GUI 框架,寫出來的程序可以輕松運行在不同的操作系統(tǒng)中, PyQt 就是用 Python 基于它實現(xiàn)的,這樣我們可以使用 Python 來調(diào)用 Qt 中的 C++ 方法, 從而簡單的實現(xiàn)用戶界面程序,構(gòu)建的時候也不會犧牲 C++ 的速度。還有,它可以運行在 Windows,Linux,Android,MacOS,iOS 等常見的系統(tǒng)里面。 如果你之前沒有安裝過 PyQt5 的話可以使用 pip 安裝一下:接著可以創(chuàng)建一下窗口,繼承 QMainWindow, 然后想在自己的窗口中干嘛就干嘛,這里先定義一下窗口的標(biāo)題: 這里傳入了 sys.argv 主要是用來接收命令行傳入的參數(shù),如果你不需要的話,直接傳個空 list 也是可以的: 為了方便,我們直接把所有的組件導(dǎo)進來吧:一樣的,每個組件的屬性都可以自行設(shè)置樣式和位置:這里我們設(shè)置字體顏色為熟悉的綠色,然后讓它居中對其,其中的 Qt 可以通過 PyQt5.QtCore 導(dǎo)入:其它的組件等下再介紹,我們先來了解一下 PyQt5 的布局。PyQt5 的 Layout 有好幾種,我分別跟你說一下:我們在這里創(chuàng)建了一個 QVBoxLayout ,并且在剛剛的 Label 下創(chuàng)建了一個按鈕,把這兩組件都塞到這個垂直的 layout 里面去,最后顯示到我們的窗口中,就變成這樣了:同樣的道理,只不過我們這次換成了水平的 Layout ,運行一波就是水平排放了:和上次 tkinter 說的一樣,你也可以把一個窗口看成一個表格,這里我們使用 QGridLayout ,然后把組件放在你想放的單元格中去,我們添加了一個 label 和四個 button ,讓它們分別放在不同的單元格中,運行一波就是這樣:接著我們再來了解一下按鈕組件的點擊時間綁定,比如我們想當(dāng)用戶點擊 “滾” 的時候,讓 “你被綠了” 變成 “對不起,我錯了!”,可以這樣實現(xiàn): 調(diào)用 connect 方法來綁定點擊事件的回調(diào):那么這時候點擊的 Button0 的時候就會調(diào)用 changeText 方法:當(dāng)然,你也可以自定義一個按鈕,繼承 QPushButton,然后攔截點擊事件,在自己的按鈕中處理,像這樣創(chuàng)建一個自己的按鈕,然后當(dāng)觸發(fā)鼠標(biāo)點擊按鈕的時候就會調(diào)用 mousePressEvent 方法: 接著在窗口實例化一個,然后添加到 Layout 中去: 接著我們來看看彈窗,比如我們想要點擊 “滾啊” 就彈出一個窗口,那么就可以這樣:綁定的 showDialog 方法,這里主要彈出一個輸入確認(rèn)框,當(dāng)用戶按確認(rèn)的時候就改變 Label 的文本內(nèi)容:當(dāng)然,你完全可以自定義一個 Dialog, 直接繼承 QDialog 然后在里面定義你想要彈窗的內(nèi)容,比如這里我就讓它彈出一個和原本窗口一樣的內(nèi)容: 當(dāng)點擊 “滾啊” 的時候,實例化自己的 Dialog :PyQt5 的其它常用組件用起來也差不多,大概有這么一些: 上面這個組件代碼是官方提供的,考慮到有些 b 友網(wǎng)絡(luò)有毛病,幫你上傳了,在公眾號發(fā)送 5 獲取吧。感興趣的話可以到以下鏈接看更多相關(guān)的內(nèi)容: https://build-system./pyqt5-tutorialok,以上就是小帥b今天給你帶來的分享,那么我們下回見,peace!
|