一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python 創(chuàng)建用戶界面之 PyQt5 的使用

 小帥b 2021-10-12
之前給大伙介紹了下 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)里面。

那么,怎么玩它呢?
接下來就是:



學(xué)習(xí) Python 的正確姿勢





如果你之前沒有安裝過 PyQt5 的話可以使用 pip 安裝一下:

pip install PyQt5

安裝完了之后,首先導(dǎo)入 PyQt5






接著可以創(chuàng)建一下窗口,繼承 QMainWindow, 然后想在自己的窗口中干嘛就干嘛,這里先定義一下窗口的標(biāo)題:






接著創(chuàng)建 app:






這里傳入了 sys.argv 主要是用來接收命令行傳入的參數(shù),如果你不需要的話,直接傳個空 list 也是可以的:






接著我們把剛剛的窗口實例化一下,show 出來:






最后讓 app 循環(huán)等待交互:






運行一波,一個可愛的小窗口躍然于你我的心中:






接著我們在這個窗口里面塞點組件吧。

為了方便,我們直接把所有的組件導(dǎo)進來吧:






每個組件都是一個對象,先來加個文本,可以這樣:






運行一波就是這樣:






一樣的,每個組件的屬性都可以自行設(shè)置樣式和位置:






這里我們設(shè)置字體顏色為熟悉的綠色,然后讓它居中對其,其中的 Qt 可以通過 PyQt5.QtCore 導(dǎo)入:






運行一波:






其它的組件等下再介紹,我們先來了解一下 PyQt5 的布局。

PyQt5 的 Layout 有好幾種,我分別跟你說一下:

垂直的布局,QVBoxLayout:





我們在這里創(chuàng)建了一個 QVBoxLayout ,并且在剛剛的 Label 下創(chuàng)建了一個按鈕,把這兩組件都塞到這個垂直的 layout 里面去,最后顯示到我們的窗口中,就變成這樣了:






水平布局,QHBoxLayout:






同樣的道理,只不過我們這次換成了水平的 Layout ,運行一波就是水平排放了:





表格布局,QGridLayout:






和上次 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-tutorial
https://www./


ok,以上就是小帥b今天給你帶來的分享,那么我們下回見,peace!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    麻豆欧美精品国产综合久久| 九九热精品视频免费在线播放| 人妻熟女欲求不满一区二区| 中文字幕欧美视频二区| 女人高潮被爽到呻吟在线观看| 国产精品大秀视频日韩精品| 欧美日韩中黄片免费看| 欧美偷拍一区二区三区四区| 日本欧美视频在线观看免费| 偷自拍亚洲欧美一区二页| 在线免费看国产精品黄片| 国产精品亚洲精品亚洲| 国产精品福利一二三区| 日韩特级黄片免费在线观看| 国产精品免费精品一区二区 | 国产精品自拍杆香蕉视频| 亚洲精品黄色片中文字幕| 91亚洲国产日韩在线| 日本最新不卡免费一区二区| 成年女人午夜在线视频| 亚洲日本韩国一区二区三区| 国产高清一区二区不卡| 视频一区二区三区自拍偷| 东北女人的逼操的舒服吗| 日韩综合国产欧美一区| 国产精品久久熟女吞精| 国产精品一区二区日韩新区| 午夜精品久久久免费视频| 色婷婷视频在线精品免费观看| 日本婷婷色大香蕉视频在线观看| 欧美日韩一区二区午夜| 国产精品十八禁亚洲黄污免费观看| 日本欧美视频在线观看免费 | 中文字幕区自拍偷拍区| 国产对白老熟女正在播放| 国产毛片不卡视频在线| 精品视频一区二区三区不卡| 中文字幕人妻av不卡| 欧美美女视频在线免费看| 欧美成人黄色一区二区三区| 国产不卡在线免费观看视频|