第六章QDialog(Layouts)
- 模态对话框:在弹出对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到对话框关闭
- 非模态对话框:又叫无模式对话框,即弹出非模态对话框时,用户仍然可以对其他窗口进行操作
- 半模态对话框:介于模态和非模态之间,会阻塞窗口的响应,但不影响后续代码的执行
#include <QDialog>
QDialog dialog;
dialog.open();
qDebug() << "dialog";
QDialogButtonBox
#include <QDialogButtonBox>
#include <QPushButton>
auto dialogbox = new QDialogButtonBox;
dialogbox->addButton(QDialogButtonBox::Ok);
dialogbox->addButton("取消", QDialogButtonBox::RejectRole);
dialogbox->addButton(new QPushButton("保存"), QDialogButtonBox::AcceptRole);
dialogbox->setOrientation(Qt::Vertical);
QObject::connect(dialogbox, &QDialogButtonBox::accepted, [=] {
qInfo() << "接受";
dialogbox->close(); });
QObject::connect(dialogbox, &QDialogButtonBox::rejected, [] {
qInfo() << "拒绝"; });
dialogbox->setAttribute(Qt::WA_DeleteOnClose);
dialogbox->show();
QMessageBox
#include <QMessageBox>
QMessageBox* msgBox = new QMessageBox;
msgBox->setText("今天天气不错");
msgBox->setIcon(QMessageBox::Warning);
msgBox->exec();
QMessageBox::about(nullptr, "静态", "今天天气不错");
QMessageBox::aboutQt(nullptr