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自带的 消息 弹窗模块,产生一个弹窗他同时,一定会有个父窗口显示 来,这是非常大的一个败笔,所以除非