阅读 123

关于使用pyqt弹出消息提示框的问题

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是最强大的库之一。PyQt是由Phil Thompson 开发。接下来通过本文给大家介绍下使用pyqt弹出消息提示框的问题,需要的朋友可以参考下

目录
  • 安装 pyqt

    • 安装遇到问题

    • 还有 To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. 问题

    • Ubuntu 默认使用 Python2 更换默认配置为 Python3

    • 测试验证

  • 创建一个基本的GUI应用

    • 各种样式的消息对话框示例

      • Python 程序打包

        • 安装 pyinstaller 显示 command not found

      • 总结

        本文仅针对 Ubuntu 操作系统环境,其他系统环境待日后遇到再补充。本文主要内容参考Linux公社(https://www.linuxidc.com/Linux/2020-05/163168.htm

        安装 pyqt

        PyQt5是python模块,可让您非常快速地构建GUI应用程序。通常将它与Tkinter进行比较,但有一些区别。主要的一项是开发GUI的速度。 PyQt带有一个称为Qt-Designer的惊人工具,该工具是一个拖放界面,可根据您构建的GUI自动为您生成代码。这样可以更快地构建美观的应用程序。另一个区别是Tkinter默认带有Python 3+,必须在其中安装PyQt。

        开始使用 PyQt5 的第一步是安装它。为此,我们将需要使用 pip
        执行以下命令来安装 PyQt5

        1
        2
        3
        4
        $ 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 工具没有更新导致的,执行以下命令:

        1
        2
        3
        $ 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 即可,如下操作:

        1
        $ python -m pip uninstall pip

        在这里插入图片描述

        Ubuntu 默认使用 Python2 更换默认配置为 Python3

        1.查看当前ubuntu系统已经安装的python版本及当前使用的python版本

        1
        $ python --version

        2.设置update-alternativer 切换python版本

        1
        $ update-alternatives --list python

        执行后显示:

        update-alternatives: error: no alternatives for python #表示Python代替版本尚未安装

        然后执行以下命令安装:

        1
        2
        3
        4
        5
        $ 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

        查看默认版本

        1
        $ python --version

        上述命令中因为我们设置 /usr/bin/python3.6 设置的优先级为2 所以update-alternatives命令自己设置3.6为默认

        再次显示Python代替版本信息

        1
        $ update-alternatives --list python

        切换版本 update-alternatives --config python

        1
        $ sudo update-alternatives --config python

        3.python3版本安装pip

        1
        $ sudo apt-get install python3-pip

        安装完以后运行 pip3 -V 显示版本

        升级 pip 版本

        1
        $ pip3 install --upgrade pip

        测试验证

        只需要执行以下操作就能验证 pyqt5 是否正常安装配置了:

        1
        2
        3
        $ python3
        > from PyQt5 import QtWidgets
        > quit()

        在这里插入图片描述


        创建一个基本的GUI应用

        在成功安装了 pyqt5 模块后,创建一个简单的 GUI 测试一下是否正常。
        参考 Linux 公社例子,具体代码如下:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        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(280150)
         
            label1 = QLabel(win)
            label1.setText("www.linuxidc.com")
            label1.adjustSize();
            label1.move(260, 180)
         
            win.show()
            sys.exit(app.exec_())
         
        main()  # 确保调用该函数

        一定主要 Python 代码缩进要保持一致,不然会报错的.
        执行结果如下:

        在这里插入图片描述

        各种样式的消息对话框示例

        现在就将 pyqt5 中的各种消息对话框通过一个小示例展示一下,具体代码如下:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        47
        48
        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 程序打包

        我们在通过自己的开发环境编写和测试好了界面程序,如果仅仅把我们编写好的执行 Python 脚本提供给对方,对方的 PC 环境下很可能没有我们的程序依赖环境,这时候我们最好把 Python 程序打包后再发给对方。

        安装pyinstaller

        1
        pip install pyinstaller

        准备好python文件, 这里可以使用刚刚我们用于测试的代码 demo.py

        打包成可执行文件

        终端输入:

        1
        pyinstaller -F demo.py

        就可以生成可执行文件 demo 了:

        在终端中输入 ./demo 运行:

        常用参数:

        -i 添加图标,后面紧跟图标路径,图标格式必须是.ico
        -F 打包成一个exe文件
        -w 使用窗口,无控制台
        -c 使用控制台,无窗口
        -D 创建一个目录,里面包含exe以及其他一些依赖性文件
        pyinstaller -h 来查看参数

        安装 pyinstaller 显示 command not found

        到 pyinstaller 官网下载,https://github.com/pyinstaller/pyinstaller 下载到本地以后进行解压:

        1
        $ tar -xjf xx.tar.bz2

        解压完成后进入文件夹执行:

        1
        $ python setup.py install

        安装完成后就可以进入你的文件目录进行打包了。

        总结

        目前在界面应用开发中,由于跨平台的问题,Qt 和 pyqt 被大量使用,所以大家如果以后会接触到应用界面开发的话,可以考虑好好学习一下这方面哦 ????

        到此这篇关于使用pyqt弹出消息提示框的文章就介绍到这了

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


          文章分类
          代码人生
          版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
          相关推荐