Qt全屏显示和按键ESC退出全屏

news/2024/10/12 16:18:03

1.需求描述

将播放窗口全屏显示,将工具栏边框等隐藏在后面;然后退出全屏通过ESC返回按钮;

2.实现方法

定义一个全屏的容器类,继承于QWidget;全屏时,去掉窗口的父窗口,然后全屏显示,不去掉父窗口指针无法全屏;按下ESC按钮后,通过keyPressEvent(QKeyEvent* pEvent);函数,将父窗口重新设置回去;

#ifndef FULLSCREEN_H
#define FULLSCREEN_H#include <QWidget>
#include <QKeyEvent>
class FullScreen : public QWidget
{Q_OBJECTpublic: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);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/70708.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024 Navicat Premium 16+17安装教程(附激活方法)

Navicat Premium,作为一款功能全面的集成数据库管理工具,无缝支持多样化的数据库类型,为用户带来前所未有的高效与便捷管理体验。它不仅涵盖了连接管理、数据导入导出、同步迁移、备份恢复等核心功能,确保用户能够游刃有余地应对各类数据库管理挑战,还进一步拓展了数据库对…

gost socks5代理

购买云主机开放所有tcp端口 配置云主机 https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el8/x86_64/ 选择清华镜像源[root@iZbp141m9g3iwgwsmh7pvzZ yum.repos.d]# cat >> /etc/yum.repos.d/elrepo.repo << q [elrepo] name=elrepo gpgcheck=0 baseurl=https…

2024-2025-1 20241403 《计算机基础与程序设计》第三周学习总结

学期(2024-2025-1) 学号(20241403) 《计算机基础与程序设计》第三周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第三周作业)这个作业的…

基于FIFO使用UART实现FPGA板与PC通信

基于FIFO使用UART实现FPGA板与PC通信 1. UART 简介 UART(通用异步收发传输器)是一种常用的串行通信协议,广泛用于FPGA与外部设备(如PC、传感器等)之间的通信。UART 通信的核心是将并行数据转换为串行数据传输,然后在接收端再将串行数据恢复为并行数据。 UART协议特点:异…

软件构造,生成算式采用CSV、XML、JSON三种形式进行存储并读取。

编写代码完成将生成的算式及习题长期保存下来,采用CSV、XML、JSON三种形式进行存储并读取。提交相关代码及运行截图。import random import csv import json import xml.etree.ElementTree as ET from xml.dom import minidom# 生成随机算式数据 def generate_exercises(count…

一文详述:AI 网关与 API 网关到底有什么区别?

近年来AI 发展火热,大模型已经成为推动各行各业业务创新和增长的关键力量。随之而来问题是“企业该如何安全管理和部署AI应用的挑战?”AI基础架构的设计不仅要支持现有的业务需求,还要能够适应未来技术的快速发展。在这样的背景下,AI网关的概念应运而生,AI 网关在AI应用的…

Armitage:MSF图形界面神器

原创 自然嗨 嗨嗨安全免责声明 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关。Armitage Armitage是一款Java写的Metasploit图形界面化的攻击软件,可以用它结合 Metasploit中已知的exploit来针对主机存在的漏洞自动化攻击。通过命令行的方式…