zoukankan      html  css  js  c++  java
  • Qt窗口hide()后的关闭机制

    https://blog.csdn.net/qq1623803207/article/details/78739960

    假设有这么一个“游戏”需求:

    1、用户登陆界面。

    2、登陆成功后,才能进入“游戏”主界面。

    如图:


    登陆成功了,游戏界面显示了,但登陆界面并没有消失/隐藏。

    为了使登陆界面隐藏,我们调用了hide()函数:


    问题来了:

    当“游戏”窗口关闭后,这个隐藏的“登陆”窗口怎么办?是否还在运行?如果关闭了,是属于正常关闭么?

    当然,强大的“信号和槽”机制给任何问题都提供了一个行得通的思路,即:重写closeEvent(QCloseEvent *event)的方法来通知“登陆窗口”.......

    其实,“游戏”窗口关闭后,隐藏的“登陆”窗口属于正常关闭

    Qt的帮助文档里面是这么说的:

    quitOnLastWindowClosed : bool

    This property holds whether the application implicitly quits when the last window is closed.

    The default is true.

    If this property istrue, the applications quits when the last visible primary window (i.e. window with no parent) is closed.

    Access functions:

    bool quitOnLastWindowClosed()

    void setQuitOnLastWindowClosed(bool quit).

    即:

    quitOnLastWindowClosed是一个bool型的属性,这个属性用来保留"当最后一个窗口关闭的时候,应用程序是否隐式退出",默认值是true。

    当这个属性为true的时候,应用程序会在最后一个可见的主窗口(比如:没有父窗口的窗口)关闭的时候退出。

    访问函数:

    quitOnLastWindowClosed()来获取当前的具体值。

    setQuitOnLastWindowClosed(bool quit)来更改当前值。true:退出,false:不退出。


    因此,当main函数做以下更改时,"登陆"窗口不会关闭,如图所示:


  • 相关阅读:
    如何获取SQL Server数据库连接字符串的某些部分
    .NET同步原语Barrier简介
    模版引擎RazorEngine简介
    如何使用SQL Server实现SignalR的横向扩展
    SignalR的客户端.NET Client介绍
    一个简单的SignalR例子
    看视频学SignalR—在微软虚拟学院学习SignalR
    看视频学Bootstrap—在微软虚拟学院学习Bootstrap
    C# 窗口与控件的相关操作
    opencv——常见的操作
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/12886691.html
Copyright © 2011-2022 走看看