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 sysfrom PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QMessageBox
from PyQt5 import QtCoreimport 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()) / 2newTop = (screen.height() - size.height()) / 2self.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_())

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

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

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

在这里插入图片描述


获取更多资料,请访问大土土随笔

如果本文对您有所帮助,请关注微信公众号“捷创源科技”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试突击 | Redis 如何从海量数据中查询出某一个 Key?附视频

1 考察知识点 本题考察的知识点有以下几个: Keys 和 Scan 的区别Keys 查询的缺点Scan 如何使用?Scan 查询的特点 2 解答思路 Keys 查询存在的问题Scan 的使用Scan 的特点 3 Keys 使用相关 1)Keys 用法如下 2)Keys 存在的问题…

分享两个好用的nosql GUI工具

redis: 真是千呼万唤始出来,终于有了redis gui 谢谢作者,但中文乱码问题貌似还没有解决呀! https://github.com/caoxinyu/RedisClient mongoDB: MongoVUE这个还是很完善的 http://www.mongovue.com/ 转载于:https://www.cnblogs.com/tankaixi…

math.fabs_带有Python示例的math.fabs()方法

math.fabsPython math.fabs()方法 (Python math.fabs() method) math.fabs() method is a library method of math module, it is used to get the absolute value of a number, it accepts a number (that can be either positive integer/float or negative integer/float) a…

Linux Debian11安装MySQL8详细教程

一、下载MySQL Community Server Debian11使用了MariaDB 在APT的软件包存储库中并没有mysql,在这里下载MySQL Community Server 然后选择Debian时会出现建议使用 Mysql APT Repository。所以我们下载安装 Mysql APT Repository 的方式更新 APT Repository 之后使用 dpkg -i安…

c#五个自然日 工作日计算_C#程序输入工作日编号并打印工作日

c#五个自然日 工作日计算从工作日编号打印工作日名称 (Printing weekday name from weekday number) A switch statement allows checking a variable/value with a list of values (cases) and executing the block associated with that case. switch语句允许使用值(案例)列表…

HashMap 为什么会导致 CPU 100%?文章看不懂?来看这个视频吧!——面试突击 006 期...

无论是在实际工作中还是在面试中,HashMap 无疑是使用频率最高的知识点之一,所以我们需要搞懂每一个关于 HashMap 的知识点才行。哈喽,大家好,我是老王,欢迎来到 Java 面试突击,我们今天来开始第 6 期的内容…

计算机的安全审计

针对于企业办公计算机的广泛使用,企业内部计算机的随意使用;文件的随意拷贝与传送;打印机的随意使用,内外网混淆随意接入等问题造成企业内部信息外泄,病毒泛滥,无从查起。一系列的问题,给管理人…

Linux debian利用ifconfig查看IP地址

net-tools工具箱包括arp,hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool and iptunnel and ipmaddr等命令。 debian系统使用ifconfig命令查看IP 地址时,出现如下提示: 一、查看debian系统是否安装ifconfig命令 使用wherei…

Redis 中的过期元素是如何被处理的?「视频版」——面试突击 002 期

本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点。 涉及的知识点 过期删除策略有哪些?这些过期策略有哪些优缺点?Redis 使用的是什么过期策略&…

python字符串反转方法_Python程序使用堆栈和反转方法反转字符串

python字符串反转方法Given a string and we have to reverse it by using stack and by using reversed method in python. 给定一个字符串,我们必须使用堆栈和python中的反转方法来反转它。 1)通过使用堆栈反转字符串 (1) Reverse a string by using stack) Proc…

Linux debian安装DBeaver连接MySQL8、导入和导出数据库详细教程

一、DBeaver简介 ​ DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好,且遵循ASL 协议。由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,比如Windows、Linux、macOS 等操作系统…

使用 Redis 如何实现查询附近的人?「视频版」——面试突击 003 期

面试问题 Redis 如何实现查询附近的人? 涉及知识点 Redis 中如何操作位置信息?GEO 底层是如何实现的?如何在程序实现查询附近的人?在实际使用中需要注意哪些问题? 视频答案 视频地址:https://www.bili…

c#如何嵌套第三方程序_C#程序演示嵌套条件运算符的示例

c#如何嵌套第三方程序C# (or other programming languages also) allows to use a conditional/ternary operator within another conditional/ternary operator. C#(或其他编程语言)还允许在另一个条件/三元运算符中使用条件/三元运算符。 Syntax: 句法&#xff…

利用URL

2019独角兽企业重金招聘Python工程师标准>>> Problem You have a HTML document that contains relative URLs, which you need to resolve to absolute URLs. Solution Make sure you specify a base URI when parsing the document (which is implicit when loadi…

Win10安装DBeaver连接MySQL8、导入和导出数据库详细教程

一、DBeaver简介 ​ DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好,且遵循ASL 协议。由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,比如Windows、Linux、macOS 等操作系统…

「视频版」当线程池溢出之后,程序会奔溃吗?面试突击 007 期

哈喽,大家好,我是老王,欢迎来到第 7 期的 Java 面试突击。本文的面试题是,当线程池的任务溢出之后,程序会奔溃吗?这个问题问的是关于线程池的任务数超过线程池的承载能力之后,会出现什么情况&am…

如何在python中获取浮点数的十六进制值?

浮点数的十六进制值 (Hexadecimal value of a float number) To get the hexadecimal value of a float number we use – float.hex() method, it accepts a float value and returns its hexadecimal value in string format. 要获取浮点数的十六进制值,我们使用–…

有人说:轻量级锁一定比重量级锁快!我忍不住笑了

世界上不止有黑白两色,黑与白之间还是灰色的地带。在成人的世界里,大多数人喜欢非黑即白的观点来看待一个问题,例如《十二公民》中那个刚开始所有人都认定的“一定是富二代杀S了自己的亲身父亲”,到最后大家理性分析和推测之后发现…

Python Django设计模式及模板层

一、Django的MTV模式 MTV代表Model - Template - View (模型-模板-视图)模式。 M模型层(Model)负责与数据交互。 T模板层(Template)负责呈现内容到浏览器。 V视图层(View)是核心&…

在Tomcat中配配置数据源汇总

为什么80%的码农都做不了架构师?>>> Tomcat本身不具备处理提供数据源的能力。借助于一些开源数据源实现,如:DBCP和C3P0等。 一、在http://commons.apache.org/可下载这些是Tomcat提供配置数据源所需的类库。 注意:Tom…