Qt全屏显示和按键ESC退出全屏
1.需求描述
将播放窗口全屏显示,将工具栏边框等隐藏在后面;然后退出全屏通过ESC返回按钮;
2.实现方法
定义一个全屏的容器类,继承于QWidget;全屏时,去掉窗口的父窗口,然后全屏显示,不去掉父窗口指针无法全屏;按下ESC按钮后,通过keyPressEvent(QKeyEvent* pEvent);函数,将父窗口重新设置回去;
#ifndef FULLSCREEN_H #define FULLSCREEN_H #include <QWidget> #include <QKeyEvent> class FullScreen : public QWidget { Q_OBJECT public: FullScreen(QWidget *parent); ~FullScreen(); void SetFullScreen(); void keyPressEvent(QKeyEvent* pEvent); private: QWidget* parentwidget=NULL; }; #endif // FULLSCREEN_H
#include "FullScreen.h" #include <QLayout> FullScreen::FullScreen(QWidget *parent) : QWidget(parent) { } FullScreen::~FullScreen() { } void FullScreen::SetFullScreen() { parentwidget = parentWidget(); parentWidget()->layout()->removeWidget(this); setParent(NULL); showFullScreen(); raise(); } void FullScreen::keyPressEvent(QKeyEvent* pEvent) { if (!pEvent->modifiers()) { if (pEvent->key() == Qt::Key_Escape &&isFullScreen()) { hide();//避免一闪而过 showNormal(); setParent(parentwidget); parentwidget->layout()->addWidget(this); show(); pEvent->accept(); return; } } QWidget::keyPressEvent(pEvent); }
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-10-12 linux系统和windows系统检测磁盘大小报警
2021-10-12 centos防火墙操作firewalld and systemctl 打开linux端口的shell脚本
2021-10-12 Linux快速开发之makefile编译、以服务形式运行、抓包、调试、分析dump
2021-10-12 linux docker 操作命令