zoukankan      html  css  js  c++  java
  • Qt 模态与非模态

    模态是指当子窗口弹出时,焦点始终被强行集中于子窗口,只要子窗口不退出,焦点就不会被释放。非模态正好相反。

    从线程角度讲,模态子窗口的线程是阻塞的,父、子窗口各有一个线程,当创建子窗口时,父线程就被子线程阻塞掉;非模态线程不是阻塞型的,父、子线程可以并行运行。

    在Qt的模态中,主要用到QDialog的exec()方法:

    SonDialog dlg(this);
    int res = dlg.exec();
    if (res == QDialog::Accepted)
    {
        QMessageBox::information(this, "INFORMATION", "You clicked OK button!");
    }
    if (res == QDialog::Rejected)
    {
        QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!");
    }
    

    通过exec()的返回值判断用户触发的是哪个按钮。

    非模态,主要用到了QDialog中的show()方法:

    SonDialog *dlg;
    dlg = new SonDialog(this);
    dlg->show();
    

  • 相关阅读:
    启发式搜索学习~~
    bzoj1032
    bzoj1037
    bzoj1029
    codevs1081 线段树练习 2
    bzoj1006
    bzoj1003
    Codeforces 607B Zuma
    20155326《网络对抗》网络欺诈技术防范
    20155326刘美岑 Exp6 信息收集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/weiweiqiao99/p/2050887.html
Copyright © 2011-2022 走看看