在qt中最小化时如何恢复到窗口模式

ive*_*han 1 c++ linux qt

void test()
{
    if(flag==1)
    {
        qDebug("in if");
        showNormal();
        flag=0;
    }
    else
    {
        qDebug("in else");
        showMinimized();
        flag=1;
    }
} 
Run Code Online (Sandbox Code Playgroud)

我用aQTimer来连接这个函数。我希望它这样运行:最小化,睡眠 3 秒,恢复到窗口模式,睡眠 3 秒,最小化....

但是实际结果被最小化了,sleep 3,什么都不做,sleep 3,什么都不做,sleep 3,恢复到窗口模式。最小化后,有两次函数什么都不做。这是怎么发生的,如何解决?

Pet*_*tis 8

假设您的小部件是 w,然后尝试

w->setWindowState(w->windowState() & ~Qt::WindowMinimized | Qt::WindowActive);
Run Code Online (Sandbox Code Playgroud)

恢复窗口,和

w->setWindowState(w->windowState() | Qt::WindowMinimized)
Run Code Online (Sandbox Code Playgroud)

显示最小化的窗口。您应该发布更多代码,以便我们更好地理解问题。