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上, 在程序退出时才会被析构

    ---------

     

     

     

  • 相关阅读:
    求解奖学金问题--贪心
    装饰模式(Decorator Pattern)
    组合模式(Composite Pattern)
    Java基础:容器
    DatabaseMetaData类
    Java命名规范
    MyEclipse快捷键
    工厂模式(Factory)
    单例模式详解以及需要注意的地方(Singleton)
    SpringBoot启动流程与源码
  • 原文地址:https://www.cnblogs.com/lzihua/p/2480894.html
Copyright © 2011-2022 走看看