QMessageBox::question(this, _TIP_QUESTION, _TIP_ISSAVEPROJECT, QMessageBox::Yes | QMessageBox::No);点解关闭为什么返回的是no
时间: 2024-02-20 13:54:46 浏览: 93
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); 怎么样更改对话框的文本内容
`result=QMessageBox::question(this,dlgTitle,strInfo,QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,defaultBtn)` 这段代码是用 Qt(一个流行的 GUI 库)创建一个消息对话框,用户可以选择“确定”、“取消”或“否”。这里解释一下各个参数:
- `this`: 指向当前对象,通常是窗口的指针,对话框会附加到这个窗口上。
- `dlgTitle`: 对话框的标题,用于标识对话框的内容。
- `strInfo`: 需要在对话框中显示的消息文本内容,你可以在这里更改你需要显示的具体信息。
- `QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel`: 定义了对话框的按钮选项,分别是“确定”、“取消”和“否”。
- `defaultBtn`: 设置默认点击的按钮,例如如果设置为 QMessageBox::No,则第一次点击会选中“否”。
如果你想更改对话框的文本内容,只需替换 `strInfo` 变量即可。将其更改为你要显示的新字符串,如:
```cpp
QString newMessage = "请输入用户名:";
result=QMessageBox::question(this, dlgTitle, newMessage, QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel, QMessageBox::No);
```
这样对话框就会显示新的提示文字“请输入用户名:”。如果你需要动态更改文本,可以在运行时修改 `newMessage` 的值。