(QT-UI)二、设置子窗口Widget为全屏,并且取消全屏

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);        //其他键则按照父类,进行默认处理
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值