问题: 用QT自定义窗口写最大最小化时,发现从全屏切换到最小化状态,再从任务栏点击图标时,打开的窗体状态是窗口化状态而不是全屏状态。
自定义的窗体切换函数DoVideoBoxMenu_WindowState(Qt::WindowState wState),根据传入的状态标志来切换不同状态。
解决1: 设置两个窗体状态标志,初始化m_lastState(Qt::WindowNoState),m_curState(Qt::WindowNoState),当点击最小化时记录当前状态为最小化
else if (wState == Qt::WindowMinimized) //最小化{this->showMinimized();m_curState = wState;}
而为全屏状态时已经将m_lastState = Qt::WindowMaximized记录。
所以当点击任务栏图标时,会检测到showEvent事件,才这个函数里面再做一次到全屏操作,即可解决问题。
void Demo::showEvent(QShowEvent* event)
{if (m_curState==Qt::WindowMinimized){DoVideoBoxMenu_WindowState(m_lastState);}QWidget::showEvent(event);
}
解决2:QT制作的软件全屏显示后最小化,点击任务栏图标打开时不是全屏_qt 程序点击最小化,在最小化的图标在点击显示程序隐藏了-CSDN博客