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…

Linux Debian11安装MySQL8详细教程

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

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 使用的是什么过期策略&…

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

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

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

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

利用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…

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

世界上不止有黑白两色,黑与白之间还是灰色的地带。在成人的世界里,大多数人喜欢非黑即白的观点来看待一个问题,例如《十二公民》中那个刚开始所有人都认定的“一定是富二代杀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…

Linux debian安装、配置和使用PuTTY教程

PuTTY是一个小巧、好用、免费的跨平台的访问Linux服务器的终端工具。PuTTY工具可以使用Telnet、SSH、rlogin、纯TCP以及串行接口连接服务器,使用非常广泛。本文主要介绍Debian系统如何安装PuTTY和如何设置该工具的字体、颜色。从而实现个性化定制自己的PuTTY工具&am…

Linux Debian安装FileZilla文件远程传输工具

一、FileZilla简介 FileZilla是一个快速、免费、跨平台的FTP软件,实用多功能和界面直观的FTP客户端。FileZilla是Windows,Linux,MacOSX等跨平台的图形化FTP,SFTP和FTPS文件管理工具。通过大量直观的工具,FileZilla可以…

Linux Debian11使用国内源安装 Docker 环境

首先切换到root账户: su 一、Debian安装Docker 1.更新并安装一些必要系统工具。 sudo apt-get update sudo apt-get upgrade sudo apt-get install \apt-transport-https \software-properties-common \ca-certificates \curl \gnupg \lsb-release2.安装GPG证书…

计算机网络怎么寻址_计算机网络中的无类寻址

计算机网络怎么寻址To reduce the wastage of IP addresses in blocks we subnetting. But in Classless addressing wastage of IP addresses in a block is more reduced than Classful subnetting. In this variable length, blocks are used that belongs to no class. 为了…

Linux Debian常用下载工具Transmission和qbittorrent

1.Transmission Transmission是Linux Debian系统下的系统自带的一种BitTorrent客户端下载工具,下载速度比较快。在Linux系统可以替代windows上的迅雷下载工具。 2.qbittorrent 使用下面命令安装: sudo apt-get install qbittorrent获取更多资料&#x…

《 面试又翻车了》这次竟然和 Random 有关?

小强最近面试又翻车了,然而令他郁闷的是,这次竟然是栽到了自己经常在用的 Random 上......面试问题既然已经有了 Random 为什么还需要 ThreadLocalRandom?正文Random 是使用最广泛的随机数生成工具了,即使连 Math.random() 的底层…