Qt中获取模态对话框返回结果
时间: 2024-09-26 07:08:02 浏览: 57
在Qt中,如果你在一个`QDialog`作为模态对话框展示,并希望从其返回一个特定的结果(通常是用户的确认或取消操作),通常会在对话框内部提供一个或多个按钮,每个按钮关联着一个`QDialog`的特殊返回值。
当你使用`exec()`方法来显示对话框时,如果用户点击了某个按钮,`QDialog`会立即结束,并通过`int`类型的`exec()`返回值来表示结果:
- `exec()`返回0通常表示对话框被取消(例如,用户按了Esc键或关闭按钮),
- 返回值大于0表示接受或OK操作,具体的数值取决于你在对话框中选择的按钮,你可以自定义这些值并与按钮连接起来。
例如,你可以这样设计一个按钮并关联返回值:
```cpp
QPushButton *okButton = new QPushButton(tr("确定"), this);
connect(okButton, &QPushButton::clicked, this, [this]{ accept(); }); // 自定义的接受回调
// 然后在exec()之后获取结果
int result = dialog.exec();
if (result == QMessageBox::Accepted) {
qDebug() << "用户选择了确定";
} else if (result > 0 && result <= QMessageBox::NoRole) {
qDebug() << "用户选择了其他按钮,自定义返回值";
}
```
在这里,`QMessageBox::Accepted`是预设的返回值,如果你设置了自定义的按钮,需要检查你指定的范围内的值。
阅读全文