1、将子窗口设置为全屏,按照顺序,先调用setWindowFlags(Qt::Window); 再调用showFullScreen();
wid->setWindowFlags(Qt::Window);
wid->showFullScreen();
2、将子窗口还原,这里使用按下ESC键作为信号,当键盘按下ESC键后,如果子窗口处于全屏状态,则将其还原为全屏前的尺寸
首先需要重写子窗口的keyPressEvent(QKeyEvent* event)函数,在函数里面添加响应ESC键的逻辑,调用setWindowFlags(Qt::SubWindow)和showNormal()即可
//hpp 在头文件添加函数keyPressEvent
class wid : public QWidget
{
//xxxx
void keyPressEvent(QKeyEvent* event);
}
//cpp 在源文件中实现
void wid::keyPressEvent(QKeyEvent* event)
{
if(Qt::Key_Escape == event->key()) //当按下键为ESC键时
{
this->setWindowFlags(Qt::SubWindow); //将窗口设置为子窗口
this->showNormal(); //还原尺寸
}
else
{
QWidget::keyPressEvent(event); //其他键则按照父类,进行默认处理
}
}