Qt 正确的显示窗口

Posted ningto.com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 正确的显示窗口相关的知识,希望对你有一定的参考价值。

显示窗口看起来很简单,但是有一些细节要注意的。通常有下面几种情况需要展示一个窗口:

  1. 第一次创建后展示
  2. 窗口最小化
  3. 窗口不在最前面
  4. 窗口销毁后再次创建(同第1种)

注意: 这里说的不是通过任务栏来激活窗口,而是通过用户设计的按钮或者菜单来打开窗口

通常的做法如下:

widget->show();
widget->raise();

这里有两个问题:

  1. 窗口最小化后出不来
  2. 窗口从非激活状态显示出来后点击主界面,主界面还是被遮挡了,只有在子窗口上点击一下激活子窗口再去主窗口上点击才有效

下面代码的实现方式,测试下来是没问题的:

void GraceShowWidget(QWidget *widget)

    if (!widget) 
        return;
    

    if (widget->isMinimized()) 
        widget->showNormal();
     else 
        widget->show();
    
	
    widget->raise();
    widget->activateWindow();

以上是关于Qt 正确的显示窗口的主要内容,如果未能解决你的问题,请参考以下文章

Qt 正确的显示窗口

QT和OpenGL如何正确集成并显示纹理

如何在 QGraphicsScene 中缩放图像? (Qt 5.11)

QT:获取对象的类名

如pyside2程序显示的窗口与qt designer中的设置不符怎么办?

qt大小变化事件和show的先后顺序