Linux Debian Python弹出信息框、警告框和询问框

利用PyCharm开发平台和Python编程语言开发PyQt5界面程序,有时需要弹出信息框、警告框和咨询框,使用win32api和win32con在windows系统可以,但是在Linux系统不可以。为了解决这个问题,可以使用QMessageBox。

# pip install pywin32
import win32api
import win32con
  
# 提醒OK消息框
win32api.MessageBox(0, "这是一个测试提醒OK消息框", "提醒",win32con.MB_OK)
  
# 是否信息框
win32api.MessageBox(0, "这是一个测试是否信息框", "提醒",win32con.MB_YESNO)
  
# 说明信息框
win32api.MessageBox(0, "这是一个测试说明信息框", "提醒",win32con.MB_HELP)
  
# 警告信息框
win32api.MessageBox(0, "这是一个测试警告信息框", "提醒",win32con.MB_ICONWARNING)
  
# 疑问信息框
win32api.MessageBox(0, "这是一个测试疑问信息框", "提醒",win32con.MB_ICONQUESTION)
  
# 提示信息框
win32api.MessageBox(0, "这是一个测试提示信息框", "提醒",win32con.MB_ICONASTERISK)
  
# 确认信息框
win32api.MessageBox(0, "这是一个测试确认信息框", "提醒",win32con.MB_OKCANCEL)
  
# 重试信息框
win32api.MessageBox(0, "这是一个测试重试信息框", "提醒",win32con.MB_RETRYCANCEL)
  
# 是否取消信息框
win32api.MessageBox(0, "这是一个测试是否取消信息框", "提醒",win32con.MB_YESNOCANCEL)

一、新建一个工程MyMainTest,创建主对话框,添加2个按钮,并关联信号和槽函数。
在这里插入图片描述
在这里插入图片描述

二、主源代码如下:

"""
python主文件
"""
# -*- coding: utf-8 -*-
import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QMessageBox
from PyQt5 import QtCore

import MyQTMainForm  # 导入MyQTMainForm.py文件


class MyPyQTMainForm(QMainWindow, MyQTMainForm.Ui_MainWindow):
    """
    主界面
    """

    def __init__(self):
        """
        初始化
        """
        super(MyPyQTMainForm, self).__init__()
        self.setupUi(self)

    def center(self):
        """
        定义一个函数使得窗口居中显示
        """
        # 获取屏幕坐标系
        screen = QDesktopWidget().screenGeometry()
        # 获取窗口坐标系
        size = self.geometry()
        newLeft = (screen.width() - size.width()) / 2
        newTop = (screen.height() - size.height()) / 2
        self.move(int(newLeft), int(newTop))

    def testInformationDialog(self):
        """
        单击“信息框”按钮消息处理响应函数
        """
        print("登录服务器成功!")
        # 信息框
        self.showInformationDialog("登录服务器成功!", "温馨提示")

    def testWarningDialog(self):
        """
        单击“警告框”按钮消息处理响应函数
        """
        print("登录服务器失败!请检查服务器登录配置及服务器是否开启!")
        # 警告信息框
        self.showWarningDialog("登录服务器失败!请检查服务器登录配置及服务器是否开启!", "温馨提示")

    def showInformationDialog(self, strText, strWindowTitle):
        """
        弹出信息提示框
        """
        msgBox = QMessageBox()
        msgBox.setIcon(QMessageBox.Information)
        msgBox.setText(strText)
        msgBox.setWindowTitle(strWindowTitle)
        # msgBox.setWindowIcon(QIcon("./images/tips.ico"))
        msgBox.setWindowIcon(QIcon("tips.ico"))
        msgBox.setStandardButtons(QMessageBox.Ok)
        msgBox.exec()

    def showWarningDialog(self, strText: str, strWindowTitle: str):
        """
        弹出警告提示框
        """
        msgBox = QMessageBox()
        msgBox.setIcon(QMessageBox.Warning)
        msgBox.setText(strText)
        msgBox.setWindowTitle(strWindowTitle)
        # msgBox.setWindowIcon(QIcon("./images/tips.ico"))
        msgBox.setWindowIcon(QIcon("tips.ico"))
        msgBox.setStandardButtons(QMessageBox.Ok)
        msgBox.exec()

    # 我们关闭窗口的时候,触发了QCloseEvent。我们需要重写closeEvent()事件处理程序。
    # 重写closeEvent函数,使点击右上角的叉号关闭按钮时,弹框提示“Are you sure to quit?”
    def closeEvent(self, event):
        # 我们显示一个消息框,两个按钮:“是”和“不是”。第一个字符串出现在titlebar。
        # 第二个字符串消息对话框中显示的文本。第三个参数指定按钮的组合出现在对话框中。
        # 最后一个参数是默认按钮,这个是默认的按钮焦点。
        reply = QMessageBox.question(self, '提示',
                                     "您确定退出系统吗?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        # 处理返回值,如果单击Yes按钮,关闭小部件并终止应用程序。否则我们忽略关闭事件。
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


"""=====================================
    主函数
====================================="""
if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 创建主窗口对象
    myPyMainForm = MyPyQTMainForm()
    # 主窗口显示在屏幕中间
    myPyMainForm.center()

    # 禁止最大化按钮
    # myPyMainForm.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)
    # 禁止拉伸窗口大小
    # myPyMainForm.setFixedSize(myPyMainForm.width(), myPyMainForm.height())

    # 显示主界面
    myPyMainForm.show()
    sys.exit(app.exec_())

三、编译运行,分别单击“信息框”按钮和“警告框”按钮,弹出对应窗口如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、单击主窗口右上角的“关闭“按钮时,弹出询问框如下。

在这里插入图片描述


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皓月盈江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值