1,问题背景
编译原理课设中,按钮绑定了一个语法分析程序,点击按钮后,需要在程序运行到一定分支时暂停,并给出提示框,而不是立马弹出。
然而在网上查阅资料后发现,采用 的方法是【QMessageBox:弹出消息对话框控件】,示例大多是关于点击按钮后,立即弹出消息框的示例,比如:
效果是这样的:
2,解决方法
不需要再重新涉及类,而是在需要的位置添加
QMessageBox.information(QtWidgets.QWidget(), '信息提示对话框', text, QMessageBox.Yes)
注意函数的用法(这里只用到弹出消息对话框,其余对话框原理类似)
information(QWdiget parent,title,text,buttons,defaultButton):弹出消息对话框。
参数解释如下:
parent:指定的父窗口控件。(有的程序中显示的是self,即父窗口控件的实例;若没有的话,则需要自己声明一个)
title:表示对话框标题。
text:表示对话框文本。
buttons:表示多个标准按钮,默认为ok按钮。
defaultButton表示默认选中的标准按钮,默认选中第一个标准按钮。
程序中的代码如下:
3,运行结果
# @Email: slxxfl000@163.com
# @Web: www.lzmath.cn
# @Blog: https://blog.csdn.net/weixin_41810846
# @Date: 2019-08-20 17:20:12
# @Last Modified by: BlueS...
QMessageBox 生成简单提示如下: QMessageBox msgBox; msgBox.setText("The document has been modified."); msgBox.exec();
有小伙伴会添加一句: msgBox.button(QMessageBox::Ok)->hide();
使用
pyqt
弹
出
消息
提示框
安装
pyqt
安装遇到问题 `No matching distribution found for
PyQt
5-
Qt
5>=5.15.2 (from
pyqt
5)`还有 `To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.` 问题`Ubuntu` 默认使用 `Python2` 更换默认配置为 `Python3`测试验证创建一个基本的GUI应用各种样式
def messageDialog():
#核心功能代码就两行,可以加到需要的地方
msg_box = QMessageBox(QMessageBox.Warning, '警告', '文件
出
现异常')
msg_box.exec_()
if __name__ == '__main__':
messageDialog()
QMessageBox::critical(0 , "critical message" , "Do you want to process?", QMessageBox::Ok | QMessageBox::Default , QMessageBox::Cancel | QMessageBox::Escape , 0 );
直接使用QMessageBox预定义的函数information,
在写python代码
中
,经常要弹窗提示一下
消息
情况,因为有时候我同时用了多个ui
框
架,比如tkinter,
pyqt
等,经常找不到合适的弹窗模块。因此梳理了一下几种弹窗方案。
一、采用windows自带的api(需要导入win32api)
特别强调采用这种方案,这种方案的优势就是弹窗模态,并不需要主窗口。
二、采用tkinter自带的
消息
弹窗模块(需要导入tkinter)
可以看到,用tkinter自带的
消息
弹窗模块,产生一个弹窗他同时,一定会有个父窗口显示
出
来,这是非常大的一个败笔,所以除非