A = QMessageBox.question(self, '确认', '数据已存在,是否替换已有数据?',QMessageBox.Yes | QMessageBox.No)
时间: 2024-06-19 17:02:22 浏览: 79
QMessageBox.question是Qt中一个用于显示消息框的函数,用于显示一个包含自定义文本和按钮的模态对话框。该函数有四个参数,第一个参数为父窗口指针,第二个参数为对话框标题,第三个参数为对话框显示的文本信息,第四个参数为对话框上显示的按钮类型。在这里,将按钮类型设置为QMessageBox.Yes | QMessageBox.No,表示对话框上有两个按钮:Yes和No。当用户点击Yes按钮时,函数会返回QMessageBox.Yes,当用户点击No按钮时,函数会返回QMessageBox.No。在上述代码中,A就是函数的返回值。
相关问题
QMessageBox.question(self, "提示", "是否退出?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
QMessageBox.question是一个用于显示提示框的函数,它可以在Qt应用程序中弹出对话框,用于向用户提供简单的信息、警告或错误消息,并等待用户响应。在这个例子中,当用户点击退出按钮时,会弹出一个提示框询问用户是否退出。如果用户选择“Yes”,则会执行退出操作;如果选择“No”,则会继续执行当前操作。
其中,第一个参数为提示框的父对象;第二个参数为提示框的标题;第三个参数为提示框的消息内容;第四个参数为提示框的按钮类型,指定了弹出框中显示的按钮种类;第五个参数为默认的按钮,指定了弹出框中默认选中的按钮。
为什么弹窗弹不出呢: for i in x: if i not in self.DB:#对于不满足的那部分 #弹出一个对话框,询问用户是否满足该前提,即是否事实库中包含该前提。 #todo btn = QMessageBox.Question(self, "询问", "是否"+i, QMessageBox.Ok, QMessageBox.Cancel) btn.exec_() if btn == QMessageBox.Ok: self.textEdit_2.setText(self.textEdit_2.toPlainText() + "\n" + i) self.DB.add(i) flag1 = True
可能是因为弹窗的代码没有被执行到,或者弹窗被阻塞了。你可以添加一些输出语句来检查代码是否被执行到,或者尝试使用非阻塞的弹窗方式,如使用QMessageBox的静态函数。例如:
```
if i not in self.DB:
#弹出一个对话框,询问用户是否满足该前提,即是否事实库中包含该前提。
reply = QMessageBox.question(self, '询问', '是否' + i + '?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
self.textEdit_2.setText(self.textEdit_2.toPlainText() + "\n" + i)
self.DB.add(i)
flag1 = True
```
在这个例子中,使用了QMessageBox的静态函数question()来创建一个非阻塞的对话框,询问用户对前提的满足程度。用户可以选择“Yes”或“No”来回答问题,如果选择“Yes”,则将对应的前提添加到文本框中,并标记flag1为True。
阅读全文