網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
本文僅針對(duì) Ubuntu 操作系統(tǒng)環(huán)境,其他系統(tǒng)環(huán)境待日后遇到再補(bǔ)充。本文主要內(nèi)容參考Linux公社(https://www.linuxidc.com/Linux/2020-05/163168.htm
)
安裝 pyqt
PyQt5是python模塊,可讓您非??焖俚貥?gòu)建GUI應(yīng)用程序。通常將它與Tkinter進(jìn)行比較,但有一些區(qū)別。主要的一項(xiàng)是開發(fā)GUI的速度。 PyQt帶有一個(gè)稱為Qt-Designer的驚人工具,該工具是一個(gè)拖放界面,可根據(jù)您構(gòu)建的GUI自動(dòng)為您生成代碼。這樣可以更快地構(gòu)建美觀的應(yīng)用程序。另一個(gè)區(qū)別是Tkinter默認(rèn)帶有Python 3+,必須在其中安裝PyQt。
開始使用 PyQt5
的第一步是安裝它。為此,我們將需要使用 pip
。
執(zhí)行以下命令來(lái)安裝 PyQt5
。
$ sudo apt-get install python3-dev $ sudo apt-get install python3-pip $ pip3 install pyqt5 $ pip3 install pyqt5-tools
安裝遇到問題
No matching distribution found for PyQt5-Qt5>=5.15.2 (from pyqt5)
Could not find a version that satisfies the requirement PyQt5-Qt5>=5.15.2 (from pyqt5) (from versions: )
No matching distribution found for PyQt5-Qt5>=5.15.2 (from pyqt5)
這是由于 pip
工具沒有更新導(dǎo)致的,執(zhí)行以下命令:
$ pip3 install --upgrade pip3 $ pip3 install --upgrade pyqt5 $ pip3 install --upgrade pyqt5-tools
還有 To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. 問題
這是由于存在 python2
的 pip
導(dǎo)致,使用 pip3
卸載 pip
即可,如下操作:
$ python -m pip uninstall pip
Ubuntu 默認(rèn)使用 Python2 更換默認(rèn)配置為 Python3
1.查看當(dāng)前ubuntu系統(tǒng)已經(jīng)安裝的python版本及當(dāng)前使用的python版本
$ python --version
2.設(shè)置update-alternativer 切換python版本
$ update-alternatives --list python
執(zhí)行后顯示:
update-alternatives: error: no alternatives for python #表示Python代替版本尚未安裝
然后執(zhí)行以下命令安裝:
$ update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode $ update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python (python) in auto mode
查看默認(rèn)版本
$ python --version
上述命令中因?yàn)槲覀冊(cè)O(shè)置 /usr/bin/python3.6 設(shè)置的優(yōu)先級(jí)為2 所以u(píng)pdate-alternatives命令自己設(shè)置3.6為默認(rèn)
再次顯示Python代替版本信息
$ update-alternatives --list python
切換版本 update-alternatives --config python
$ sudo update-alternatives --config python
3.python3版本安裝pip
$ sudo apt-get install python3-pip
安裝完以后運(yùn)行 pip3 -V
顯示版本
升級(jí) pip
版本
$ pip3 install --upgrade pip
測(cè)試驗(yàn)證
只需要執(zhí)行以下操作就能驗(yàn)證 pyqt5
是否正常安裝配置了:
$ python3 > from PyQt5 import QtWidgets > quit()
創(chuàng)建一個(gè)基本的GUI應(yīng)用
在成功安裝了 pyqt5
模塊后,創(chuàng)建一個(gè)簡(jiǎn)單的 GUI
測(cè)試一下是否正常。
參考 Linux 公社例子,具體代碼如下:
from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel import sys def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(300,300,600,400) win.setWindowTitle("Linux公社www.linuxidc.com") label = QLabel(win) label.setText("<A href='www.linxuidc.com.com'>Linux公社</a>") label.move(280, 150) label1 = QLabel(win) label1.setText("www.linuxidc.com") label1.adjustSize(); label1.move(260, 180) win.show() sys.exit(app.exec_()) main() # 確保調(diào)用該函數(shù)
一定主要 Python 代碼縮進(jìn)要保持一致,不然會(huì)報(bào)錯(cuò)的.
執(zhí)行結(jié)果如下:
各種樣式的消息對(duì)話框示例
現(xiàn)在就將 pyqt5 中的各種消息對(duì)話框通過一個(gè)小示例展示一下,具體代碼如下:
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class MyWindow(QWidget): def __init__(self,parent=None): super(MyWindow,self).__init__(parent) self.setWindowTitle("彈出式對(duì)話框例子") self.resize(400,200) self.btn1=QPushButton(self) self.btn1.setText("消息框") self.btn1.clicked.connect(self.msg1) layout=QVBoxLayout() self.btn2=QPushButton(self) self.btn2.setText("問答對(duì)話框") self.btn2.clicked.connect(self.msg2) self.btn3=QPushButton() self.btn3.setText("警告對(duì)話框") self.btn3.clicked.connect(self.msg3) self.btn4=QPushButton() self.btn4.setText("嚴(yán)重錯(cuò)誤對(duì)話框") self.btn4.clicked.connect(self.msg4) self.btn5=QPushButton() self.btn5.setText("關(guān)于對(duì)話框") self.btn5.clicked.connect(self.msg5) layout.addWidget(self.btn1) layout.addWidget(self.btn2) layout.addWidget(self.btn3) layout.addWidget(self.btn4) layout.addWidget(self.btn5) self.setLayout(layout) def msg1(self): #使用infomation信息框 QMessageBox.information(self,"標(biāo)題","消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) def msg2(self): QMessageBox.question(self,"標(biāo)題","問答消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) def msg3(self): QMessageBox.warning(self,"標(biāo)題","警告消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) def msg4(self): QMessageBox.critical(self,"標(biāo)題","嚴(yán)重錯(cuò)誤消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes) def msg5(self): QMessageBox.about(self,"標(biāo)題","關(guān)于消息正文") if __name__=="__main__": app=QApplication(sys.argv) win=MyWindow() win.show() sys.exit(app.exec_())
效果如下:
消息對(duì)話框:
問答對(duì)話框:
警告對(duì)話框
嚴(yán)重錯(cuò)誤對(duì)話框
關(guān)于對(duì)話框:
Python 程序打包
我們?cè)谕ㄟ^自己的開發(fā)環(huán)境編寫和測(cè)試好了界面程序,如果僅僅把我們編寫好的執(zhí)行 Python 腳本提供給對(duì)方,對(duì)方的 PC 環(huán)境下很可能沒有我們的程序依賴環(huán)境,這時(shí)候我們最好把 Python 程序打包后再發(fā)給對(duì)方。
安裝pyinstaller
pip install pyinstaller
準(zhǔn)備好python文件, 這里可以使用剛剛我們用于測(cè)試的代碼 demo.py
打包成可執(zhí)行文件
終端輸入:
pyinstaller -F demo.py
就可以生成可執(zhí)行文件 demo
了:
在終端中輸入 ./demo
運(yùn)行:
常用參數(shù):
-i 添加圖標(biāo),后面緊跟圖標(biāo)路徑,圖標(biāo)格式必須是.ico
-F 打包成一個(gè)exe文件
-w 使用窗口,無(wú)控制臺(tái)
-c 使用控制臺(tái),無(wú)窗口
-D 創(chuàng)建一個(gè)目錄,里面包含exe以及其他一些依賴性文件
pyinstaller -h 來(lái)查看參數(shù)
安裝 pyinstaller 顯示 command not found
到 pyinstaller
官網(wǎng)下載,https://github.com/pyinstaller/pyinstaller
下載到本地以后進(jìn)行解壓:
$ tar -xjf xx.tar.bz2
解壓完成后進(jìn)入文件夾執(zhí)行:
$ python setup.py install
安裝完成后就可以進(jìn)入你的文件目錄進(jìn)行打包了。
總結(jié)
目前在界面應(yīng)用開發(fā)中,由于跨平臺(tái)的問題,Qt
和 pyqt
被大量使用,所以大家如果以后會(huì)接觸到應(yīng)用界面開發(fā)的話,可以考慮好好學(xué)習(xí)一下這方面哦 ?
原文鏈接:https://blog.csdn.net/qq_37596943/article/details/122565711
相關(guān)推薦
- 2022-07-29 python中open函數(shù)對(duì)文件處理的使用教程_python
- 2022-11-13 pandas進(jìn)階教程之Dataframe的apply方法_python
- 2022-02-11 SQL server 數(shù)據(jù)庫(kù)導(dǎo)入(附加)和分離 && 數(shù)據(jù)庫(kù)分離之后位置 &
- 2022-06-06 uniApp、uni.chooseLocation(OBJECT)、獲取位置、{errMsg: ‘g
- 2022-11-15 Python中class內(nèi)置方法__init__與__new__作用與區(qū)別解析_python
- 2022-08-23 .net?core中的System.Buffers命名空間_基礎(chǔ)應(yīng)用
- 2023-12-16 IDEA中調(diào)用方法時(shí),同步顯示方法的注釋信息
- 2022-07-06 python的import?機(jī)制是怎么實(shí)現(xiàn)的_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支