日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

關(guān)于使用pyqt彈出消息提示框的問題_python

作者:跑不了的你 ? 更新時(shí)間: 2022-04-01 編程語(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. 問題

這是由于存在 python2pip 導(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)的問題,Qtpyqt 被大量使用,所以大家如果以后會(huì)接觸到應(yīng)用界面開發(fā)的話,可以考慮好好學(xué)習(xí)一下這方面哦 ?

原文鏈接:https://blog.csdn.net/qq_37596943/article/details/122565711

欄目分類
最近更新