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

    ---------

     

     

     

  • 相关阅读:
    二十三、Android源代码是这样搞到的(图解)
    defer用途
    vscode中go插件配置
    peewee外键性能问题
    bootstrap-select属性
    go环境变量及build文件
    peewee在flask中的配置
    python元类
    Java静态方法、单例模式区别
    Java实现list清除重复的字符串
  • 原文地址:https://www.cnblogs.com/lzihua/p/2480894.html
Copyright © 2011-2022 走看看