创建一个dialog 替代QMessageBox::Question
时间: 2023-07-26 17:03:36 浏览: 92
如果您想要替代 QMessageBox::Question 对话框,可以创建一个自定义的 QDialog 对话框。这种方式可以为对话框添加更多自定义控件和功能,并且可以更好地控制对话框的行为和外观。
下面是一个示例代码片段,演示如何创建一个自定义的 QDialog 对话框来替代 QMessageBox::Question 对话框:
```cpp
// 创建一个自定义的 QDialog 对话框
class CustomDialog : public QDialog
{
public:
CustomDialog(QWidget *parent = nullptr) : QDialog(parent)
{
// 设置对话框的标题和大小
setWindowTitle("Question");
resize(300, 100);
// 创建一些自定义控件
QLabel* label = new QLabel("Do you want to proceed?", this);
QPushButton* yesButton = new QPushButton("Yes", this);
QPushButton* noButton = new QPushButton("No", this);
// 设置控件的布局
QVBoxLayout* layout = new QVBoxLayout(this);
layout->addWidget(label);
layout->addWidget(yesButton);
layout->addWidget(noButton);
// 连接按钮的信号和槽
connect(yesButton, &QPushButton::clicked, this, &QDialog::accept);
connect(noButton, &QPushButton::clicked, this, &QDialog::reject);
}
};
// 显示自定义对话框并获取用户的选择
CustomDialog dialog;
if (dialog.exec() == QDialog::Accepted) {
// 用户选择了“是”
} else {
// 用户选择了“否”
}
```
这个示例代码片段创建了一个自定义的 QDialog 对话框,并在其中添加了一些标签和按钮。用户可以通过单击“是”或“否”按钮来做出选择。通过调用 QDialog::exec() 方法来显示对话框并等待用户的响应。如果用户单击了“是”按钮,对话框将返回 QDialog::Accepted;如果用户单击了“否”按钮,对话框将返回 QDialog::Rejected。
需要注意的是,自定义对话框的外观和行为可以通过添加更多的控件和响应不同的信号和槽来进一步定制。
阅读全文