zoukankan      html  css  js  c++  java
  • Qt 模态对话框与非模态对话框及生命周期

    如果要设置为模态对话框,最简单的就是使用exec()方法,示例代码如下:

            MyDialog myDlg;   

            myDlg.exec();

    也可以使用show()方法,示例代码如下:

            MyDialog myDlg;   

            myDlg.setModal(true);   

            myDlg.show();

    如果要设置为非模态对话框,必须使用show()方法,示例代码如下:

            MyDialog myDlg;   

            myDlg.setModal(false);//或者   myDlg.setModal();

            myDlg.show();

    如果需要它总在所有窗口的最前面,这时可以通过如下代码设置:

            myDlg.setWindowFlags(Qt::WindowStaysOnTopHint) 

    一闪而过问题分析:

    ------------

    MyDialog myDlg;   

    myDlg.setModal(true);   

    myDlg.show();

    一闪而过。

    myDlg创建在stack上,生命期是大括号内

    -----------

    MyDialog myDlg=new MyDialog();   

    myDlg.setModal(true);   

    myDlg.show();

    报错

    -------------

    MyDialog *myDlg=new MyDailog();   

    myDlg->setModal(true);   

    myDlg->show();

    ok

    myDlg通过new创建在heap上, 在程序退出时才会被析构

    ---------

     

     

     

  • 相关阅读:
    eclipse禁用svg文件Validation
    在centos上安装jenkins
    5.volatile的应用
    4.资源限制
    linux git保存用户名密码(避免每次push输用户名密码)
    mysql 从库落后主库太多优化
    mfs使用指引
    Asura监控---AsuraMonitor,阿修罗监控开源
    docker overlay网络实现
    ELK+kafka日志收集
  • 原文地址:https://www.cnblogs.com/lzihua/p/2480894.html
Copyright © 2011-2022 走看看