2016-09-12 74 views
-2
void test() 
{ 
    if(flag==1) 
    { 
     qDebug("in if"); 
     showNormal(); 
     flag=0; 
    } 
    else 
    { 
     qDebug("in else"); 
     showMinimized(); 
     flag=1; 
    } 
} 

我使用QTimer来连接此功能。 我希望它运行如下:最小化,睡眠3秒,恢复到窗口模式,睡眠3秒,最小化....如何在qt中最小化时恢复到窗口模式

但实际结果是最小化,睡眠3,什么都不做,睡眠3,什么都不做,睡眠3,恢复到窗口模式。最小化后,有两次该功能什么都不做。如何发生这种情况,以及如何解决这个问题?

+0

这个问题太模糊了。如果你提供了更多的代码 – Athena

+0

它会更好,这是一个非常简单的程序,一个带有按钮的窗口。当你开始有代码时,函数“testslots”将每3秒运行一次。我想窗口最小化,恢复,然后最小化,然后恢复。 (我的目的是测试如何在最小化模式下恢复主窗口)。代码如下:https://github.com/iverhan/test.git – iverhan

+0

我已经从[github](https: //github.com/iverhan/test.git),并按照我的预期工作。我添加了一些额外的'qDebug'语句来确保所有内容都以正确的时间间隔被调用,并且看起来都很好。 –

回答

0

假设你的widget是W,然后尝试

w->setWindowState(w->windowState() & ~Qt::WindowMinimized | Qt::WindowActive); 

恢复窗口,并

w->setWindowState(w->windowState() | Qt::WindowMinimized) 

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

相关问题