QMessageBox::question(this, _TIP_QUESTION, _TIP_ISSAVEPROJECT, QMessageBox::Yes | QMessageBox::No);点解关闭为什么返回的是no
时间: 2024-02-20 14:54:46 浏览: 123
QMessageBox::question是Qt框架中的一个对话框类,用于显示一个带有问题消息和两个按钮(Yes和No)的对话框。它的返回值取决于用户点击的按钮。
在你提供的代码中,QMessageBox::question函数的第一个参数是父窗口指针,第二个参数是对话框标题,第三个参数是对话框中显示的问题消息,第四个参数是按钮的组合。根据你提供的代码,这个对话框显示的问题消息是"_TIP_ISSAVEPROJECT",按钮组合是QMessageBox::Yes | QMessageBox::No,表示对话框中有一个"Yes"按钮和一个"No"按钮。
当用户点击"Yes"按钮时,QMessageBox::question函数会返回QMessageBox::Yes;当用户点击"No"按钮时,QMessageBox::question函数会返回QMessageBox::No。
所以,如果关闭对话框时返回的是"No",那说明用户点击了"No"按钮。
相关问题
QMessageBox::question(this, _TIP_QUESTION, _TIP_ISSAVEPROJECT, QMessageBox::Yes | QMessageBox::No);点解关闭如何返回 QMessageBox::Close
QMessageBox::question函数是Qt框架中用于显示一个询问对话框的函数。它会显示一个带有指定文本和按钮的对话框,并返回用户点击的按钮的标识符。
在你提供的代码中,QMessageBox::question函数显示了一个询问对话框,其中包含了一个文本提示和两个按钮:Yes和No。当用户点击其中一个按钮时,函数会返回相应按钮的标识符。
对于你的问题,当用户点击关闭按钮时,QMessageBox::question函数会返回QMessageBox::Close标识符。你可以通过判断返回值是否等于QMessageBox::Close来确定用户是否点击了关闭按钮。
下面是一个示例代码:
```
QMessageBox::StandardButton button = QMessageBox::question(this, _TIP_QUESTION, _TIP_ISSAVEPROJECT, QMessageBox::Yes | QMessageBox::No);
if (button == QMessageBox::Close) {
// 用户点击了关闭按钮
// 执行相应的操作
} else if (button == QMessageBox::Yes) {
// 用户点击了Yes按钮
// 执行相应的操作
} else if (button == QMessageBox::No) {
// 用户点击了No按钮
// 执行相应的操作
}
```
这样,你就可以根据用户点击的按钮来执行相应的操作了。
result=QMessageBox::question(this, dlgTitle, strInfo,QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,defaultBtn); 是更改对话框的文本内容
该行代码是在使用 Qt 库中 QMessageBox 类来创建一个消息对话框,并请求用户的输入或确认。这里是一些关键部分的解释:
- `QMessageBox::question` 是 QMessageBox 提供的一个静态成员函数,用于显示一个询问式对话框。
- `this` 指向当前对象(可能是某个窗口或对话框),作为对话框的父窗口。
- `dlgTitle` 是对话框的标题,用于标识对话框的主题。
- `strInfo` 是对话框中的文本信息,通常会展示给用户问题或者提示。
- `QMessageBox::Yes`, `QMessageBox::No`, `QMessageBox::Cancel` 是按钮类型枚举,分别代表“确定”、“取消”和“不回答”三种选择。
- `defaultBtn` 指定默认点击的那个按钮,这里提供了 Yes、No 或 Cancel 中的一种。
整体来说,这行代码的作用是打开一个包含指定信息的问答对话框,让用户可以选择“是”、“否”或“取消”,并且设置了“是”为默认选项。如果你想更改对话框的文本内容(strInfo)或者设置其他参数,只需要修改对应的字符串和枚举值即可。如果你对具体如何操作有疑问,可以问我相关的问题:
阅读全文