利用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 如何压制警告 python警告框_PyCharm


python 如何压制警告 python警告框_Python_02

二、主源代码如下:

"""
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_())

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

python 如何压制警告 python警告框_Python_03


python 如何压制警告 python警告框_Python_04


python 如何压制警告 python警告框_信息框_05

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

python 如何压制警告 python警告框_PyCharm_06