Qt中子窗口全屏显示与退出全屏

在Qt开发中偶尔遇到子窗口全屏显示和退出全屏的功能需求,是一种比较正常的情况,首先,我们需要知道子窗口全屏显示与退出全屏主要会调用的方法有哪些,下面将列举此过程主要调用的方法:

isFullScreen();判断窗口当前是处于全屏状态还是非全屏状态

setWindowFlags(Qt::WindowFlags type);设置窗口属性

showFullScreen();设置窗口全屏显示

showNormal();设置窗口恢复原来显示(Restores the widget after it has been maximized or minimized.)

核心代码

下面对Qt::WindowFlags类型做一个大致的介绍:

enum Qt::windowType

flags  Qt::WindowFlags

此枚举类型用于为窗口小部件指定各种窗口系统属性。它们相当不寻常,但在少数情况下是必要的。 其中一些标志取决于底层窗口管理器是否支持它们。主要类型有:

Qt::Widget:这是QWidget的默认类型。如果它们有父级,这种类型的部件是子部件,如果没有父控件,则为独立窗口。

Qt::Window:表示小部件是一个窗口,无论窗口小部件是否具有父控件,通常具有窗口系统框架和标题栏。 请注意,如果部件没有父控件,则无法取消设置此标记(即如果存在父控件,则可以取消此标记,否则,必须存在此标记用以标识此控件是个独立窗口)。

Qt::Dialog:指示部件是应该作为对话框窗口(即标题栏中通常没有最大化或最小化按钮)。这是QDialog的默认类型。如果要将其用作模态对话框,则应从另一个窗口启动它,或者如果有父窗口,则与QWidget::windowModality属性一起使用。如果将其设置为模态,则对话框将阻止应用程序中的其他顶级窗口获取任何输入。我们将具有父级的顶级窗口称为辅助窗口。

Qt::Sheet:表示该窗口是Macintosh工作表。 由于使用工作表意味着窗口模态,推荐的方法是使用QWidget :: setWindowModality()或QDialog :: open()。

Qt::Drawer:表示该窗口小部件是Macintosh抽屉。

Qt::Popup:表示窗口小部件是弹出式顶级窗口,即它是模态的,但具有适合弹出菜单的窗口系统框架。

Qt::Tool:表示窗口小部件是工具窗口。工具窗口通常是一个小窗口,其标题栏和装饰比通常小,通常用于工具按钮的集合。 如果有父部件,则工具窗口将始终保持在其上。 如果没有父部件,您可以考虑使用Qt :: WindowStaysOnTopHint使其位于最顶端。 如果窗口系统支持它,工具窗口可以用更轻的框架装饰。它也可以与Qt :: FramelessWindowHint结合使用。 在macOS上,工具窗口对应浮动类窗口。 这意味着窗口存在于正常窗口之上; 不可能在它上面放一个普通的窗口。 默认情况下,当应用程序处于非活动状态时,工具窗口将消失。 这可以通过Qt :: WA_MacAlwaysShowToolWindow属性来控制。

Qt::ToolTip:表示窗口小部件是工具提示。 这在内部用于实现工具提示,没有标题栏和窗口边框。

Qt::SplashScreen:表示该窗口是闪屏。 这是QSplashScreen的默认类型。

Qt::Desktop:表示此小组件是桌面。 这是QDesktopWidget的类型。

Qt::SubWindow:表示此窗口小部件是子窗口,例如QMdiSubWindow窗口小部件。

Qt::ForeignWindow:指示此窗口对象是表示由另一个进程创建的本机平台窗口或手动使用本机代码的句柄。

Qt::CoverWindow:表示该窗口代表一个封面窗口,例如,当应用程序在BlackBerry平台上最小化时显示。

还有许多标志可用于自定义顶级窗口的外观,感兴趣的朋友可以自己对照API看。也可以直接看下面关于Qt::WindowFlags的API截图。

API图一

API图二

API图三

API图四

如果需要demo的朋友,可以扫描下面二维码,关注微信公众号,在微信公众号里面的菜单栏,点击作者,添加好友,私聊作者。

另类程序人生

原文地址:https://www.cnblogs.com/wuhanpjf/p/11247770.html

时间: 2024-09-30 21:09:04

Qt中子窗口全屏显示与退出全屏的相关文章

QT中关于窗口全屏显示与退出全屏的实现

近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示函数            showFullScreen() Qt最大化显示函数         showMaximized()Qt最小化显示函数         showMinimized()Qt固定尺寸显示函数      resize(x,y)Qt设置最大尺寸函数      setMaximum

js控制页面的全屏展示和退出全屏显示

<!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <body > <button id="btn" >js控制页面的全屏展示和退出全屏显示</button> <div id="content" style="

手机影音第九天,控制视频全屏播放与退出全屏播放,音量调节按钮来控制视频音量与静音的实现

代码以托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 一.视频全屏播放与退出全屏 系统默认的videoview类,没有调整大小的方法,因此需要自定义一个类,继承videoview,然后重写里面的三个构造方法,再自定义一个调整视频播放页面大小的方法. 1.布局文件 同时,在视频播放的布局文件中,videoview布局要引用上面自定义的类. <?xml version="1.0" encoding=&

iOS 多个播放器同时播放,双击全屏,单击退出全屏

前言:公司需求如下:点击一个按钮播放一个视频,最多同时播放4个:双击某视频让其全屏,单击再恢复原来的样子.IOS的播放器有两种,MPMoviePlayerController,AVAudioPlayer.首先我尝试的是前者,发现并不能让两个视频同时播放,当播放第二个视频的时候,第一个就自动停止了:后来又找了些资料试了试后者,完美解决了这个问题. 多个播放器同时播放,资料参考自:http://ios.jobbole.com/84287/ ,这里介绍的挺详细的,文章后面还有项目可以下载演示,这里就不

关于全屏显示问题处理

window.isflsgrn=false;//IE11以下是否进入全屏标志,True为全屏状态,false为非全屏状态 window.ieIsfSceen=false;//IE11是否进入全屏标志,true为全屏状态,false为非全屏状态 //跨浏览器返回当前 document是否进入了可以请求全屏模式的状态 function fullscreenEnable(){ var isFullscreen=document.fullscreenEnabled||window.fullScreen|

JavaScript实现全屏显示

<!doctype html> <html> <head> <title>全屏显示</title> <meta charset="utf-8" /> <style> div { width: 200px; height:200px; background:pink; margin:100px auto; } button { margin-left: 650px; } h1 { margin-left:

android开发:全屏和退出全屏

android开发:全屏和退出全屏 from://http://blog.csdn.net/dyllove98/article/details/8831933 2013-04-21 20:31 413人阅读 评论(0) 收藏 举报 xml代码: <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_conten

Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)

一.自定义控件大全 (一).控件介绍 超过150个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的控件数量. 每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量.qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须包含所有的代码. 全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到

Android全屏设置及取消全屏设置

1.//在onCreat方法中setContentView()之前插入 requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);//全屏 注:这种方法在启动activity时会闪现状态栏之后再全屏 2.在manifest里面