關于使用pyqt彈出消息提示框的問題
本文僅針對 Ubuntu 操作系統(tǒng)環(huán)境,其他系統(tǒng)環(huán)境待日后遇到再補充。本文主要內容參考Linux公社(https://www.linuxidc.com/Linux/2020-05/163168.htm)
安裝 pyqt
PyQt5是python模塊,可讓您非??焖俚貥嫿℅UI應用程序。通常將它與Tkinter進行比較,但有一些區(qū)別。主要的一項是開發(fā)GUI的速度。 PyQt帶有一個稱為Qt-Designer的驚人工具,該工具是一個拖放界面,可根據(jù)您構建的GUI自動為您生成代碼。這樣可以更快地構建美觀的應用程序。另一個區(qū)別是Tkinter默認帶有Python 3+,必須在其中安裝PyQt。
開始使用 PyQt5 的第一步是安裝它。為此,我們將需要使用 pip。
執(zhí)行以下命令來安裝 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 工具沒有更新導致的,執(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 導致,使用 pip3 卸載 pip 即可,如下操作:
$ python -m pip uninstall pip

Ubuntu 默認使用 Python2 更換默認配置為 Python3
1.查看當前ubuntu系統(tǒng)已經(jīng)安裝的python版本及當前使用的python版本
$ python --version
2.設置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
查看默認版本
$ python --version
上述命令中因為我們設置 /usr/bin/python3.6 設置的優(yōu)先級為2 所以update-alternatives命令自己設置3.6為默認
再次顯示Python代替版本信息
$ update-alternatives --list python
切換版本 update-alternatives --config python
$ sudo update-alternatives --config python
3.python3版本安裝pip
$ sudo apt-get install python3-pip
安裝完以后運行 pip3 -V 顯示版本
升級 pip 版本
$ pip3 install --upgrade pip
測試驗證
只需要執(zhí)行以下操作就能驗證 pyqt5 是否正常安裝配置了:
$ python3 > from PyQt5 import QtWidgets > quit()

創(chuàng)建一個基本的GUI應用
在成功安裝了 pyqt5 模塊后,創(chuàng)建一個簡單的 GUI 測試一下是否正常。
參考 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() # 確保調用該函數(shù)一定主要 Python 代碼縮進要保持一致,不然會報錯的.
執(zhí)行結果如下:

各種樣式的消息對話框示例
現(xiàn)在就將 pyqt5 中的各種消息對話框通過一個小示例展示一下,具體代碼如下:
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("彈出式對話框例子")
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("問答對話框")
self.btn2.clicked.connect(self.msg2)
self.btn3=QPushButton()
self.btn3.setText("警告對話框")
self.btn3.clicked.connect(self.msg3)
self.btn4=QPushButton()
self.btn4.setText("嚴重錯誤對話框")
self.btn4.clicked.connect(self.msg4)
self.btn5=QPushButton()
self.btn5.setText("關于對話框")
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,"標題","消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def msg2(self):
QMessageBox.question(self,"標題","問答消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def msg3(self):
QMessageBox.warning(self,"標題","警告消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def msg4(self):
QMessageBox.critical(self,"標題","嚴重錯誤消息正文",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
def msg5(self):
QMessageBox.about(self,"標題","關于消息正文")
if __name__=="__main__":
app=QApplication(sys.argv)
win=MyWindow()
win.show()
sys.exit(app.exec_())效果如下:

消息對話框:

問答對話框:

警告對話框

嚴重錯誤對話框

關于對話框:

Python 程序打包
我們在通過自己的開發(fā)環(huán)境編寫和測試好了界面程序,如果僅僅把我們編寫好的執(zhí)行 Python 腳本提供給對方,對方的 PC 環(huán)境下很可能沒有我們的程序依賴環(huán)境,這時候我們最好把 Python 程序打包后再發(fā)給對方。
安裝pyinstaller
pip install pyinstaller
準備好python文件, 這里可以使用剛剛我們用于測試的代碼 demo.py
打包成可執(zhí)行文件
終端輸入:
pyinstaller -F demo.py
就可以生成可執(zhí)行文件 demo 了:
在終端中輸入 ./demo 運行:
常用參數(shù):
-i 添加圖標,后面緊跟圖標路徑,圖標格式必須是.ico
-F 打包成一個exe文件
-w 使用窗口,無控制臺
-c 使用控制臺,無窗口
-D 創(chuàng)建一個目錄,里面包含exe以及其他一些依賴性文件
pyinstaller -h 來查看參數(shù)
安裝 pyinstaller 顯示 command not found
到 pyinstaller 官網(wǎng)下載,https://github.com/pyinstaller/pyinstaller 下載到本地以后進行解壓:
$ tar -xjf xx.tar.bz2
解壓完成后進入文件夾執(zhí)行:
$ python setup.py install
安裝完成后就可以進入你的文件目錄進行打包了。
總結
目前在界面應用開發(fā)中,由于跨平臺的問題,Qt 和 pyqt 被大量使用,所以大家如果以后會接觸到應用界面開發(fā)的話,可以考慮好好學習一下這方面哦 ??
到此這篇關于使用pyqt彈出消息提示框的文章就介紹到這了,更多相關pyqt彈出消息提示框內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python GUI庫圖形界面開發(fā)之PyQt5計數(shù)器控件QSpinBox詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5計數(shù)器控件QSpinBox詳細使用方法與實例,需要的朋友可以參考下2020-02-02
python網(wǎng)絡編程學習筆記(二):socket建立網(wǎng)絡客戶端
看了這一節(jié),突然之間對python網(wǎng)絡編程學習筆記(1)中的一些不理解的問題有了認識,至少明白了socket是怎么回事。這里關于socket的起源等問題就不做筆記記錄了,直接進入主題2014-06-06
python+selenium+PhantomJS抓取網(wǎng)頁動態(tài)加載內容
一般我們使用python的第三方庫requests及框架scrapy來爬取網(wǎng)上的資源,但是設計javascript渲染的頁面卻不能抓取,此 時,我們使用web自動化測試化工具Selenium+無界面瀏覽器PhantomJS來抓取javascript渲染的頁面,下面實現(xiàn)一個簡單的爬取2020-02-02
python之隨機數(shù)函數(shù)的實現(xiàn)示例
這篇文章主要介紹了python之隨機數(shù)函數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

