QDialog

简介

QDiloag是一个人机交互标准对话框基类,它有很多子类:QMessageBox,QFileDialog,QColorDialog,QInputDialog,QFontDialog等等;

它有三种模式:

  • 模态
  • 非模态
  • 半模态

模态对话框

请添加图片描述

主界面阻塞,exec()之后代码不会执行,直到关闭模态对话框

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    QDialog *pDialog = new QDialog(&w);
    pDialog->setWindowTitle("模态对话框");
    pDialog->exec();//阻塞
    w.setWindowTitle("主界面");//该代码等待执行

    return a.exec();
}

非模态对话框

请添加图片描述

主界面不阻塞,show()之后的代码会立刻执行

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    QDialog *pDialog = new QDialog(&w);
    pDialog->setWindowTitle("非模态对话框");
    pDialog->show();
    w.setWindowTitle("主界面");//立即执行

    return a.exec();
}

半模态对话框

请添加图片描述

主界面阻塞,show()之后代码会立即执行

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    QDialog *pDialog = new QDialog(&w);
    pDialog->setWindowTitle("半模态对话框");
    pDialog->setModal(true);
    pDialog->show();
    w.setWindowTitle("主界面");//立即执行

    return a.exec();
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值