Qt::WindowFlags

头图

Qt::WindowFlags

文章目录

  • Qt::WindowFlags
    • 摘要
    • 窗口&部件
    • Qt::WindowFlags&WindowType
      • 窗口类型
      • 窗口提示

关键字: QtQt::WindowFlagsQt::WindowType关键字4关键字5

摘要

今天在公司解决自己的Bugs的时候,发现一个以前可以用的功能在自己的新代码里面不可用了,所以就得解决一下自己写得BUG,就是有一个功能时需要把里面的个控件 浮动出来显示,如果没有之前的参考代码,那我就直接用Tool 窗口显示了,但是呢,上一版本版本代码中竟然是通过给 控件设置空的父类来解决,也就是调用了QWidget::setParent(nullptr);虽然感觉怪怪,但是本着能跑就不要动的原则,还是维持了原来的代码,直到这个法子在新的功能中不好使用,才不得重新学一下相关的知识。

窗口&部件

窗口标识由两部分组成,分别是窗口类型和窗口提示hint,一个窗口只有一个窗口类型。窗口提示定义了窗口的外观,可以有多个提示,窗口提示进行按位取或即可

要说清楚Qt::WindowFlags枚举类型就必须清楚两个概念:窗口和部件

**窗口:**相对独立,有子窗口和父窗口之分,主要特点就是窗口有完整的边框。

**部件:**必须依赖父窗口而存在,依赖性较强,出现在父窗体的界面内部。

Qt::WindowFlags&WindowType

窗口类型

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

ConstantValueDescription我的翻译
Qt::Widget0x00000000This is the default type for QWidget. Widgets of this type are child widgets if they have a parent, and independent windows if they have no parent. See also Qt::Window and Qt::SubWindow.这是 的缺省类型。如果这种类型的小部件有父级,则为子级,如果没有父级,则为独立窗口。参见 Qt::Window 和 Qt::SubWindow。
Qt::Window0x00000001Indicates that the widget is a window, usually with a window system frame and a title bar, irrespective of whether the widget has a parent or not. Note that it is not possible to unset this flag if the widget does not have a parent.指示小组件是一个窗口,通常具有窗口系统框架和标题栏,而不管小组件是否具有父级。请注意,如果小组件没有父级,则无法取消设置此标志。
Qt::Dialog0x00000002 WindowIndicates that the widget is a window that should be decorated as a dialog (i.e., typically no maximize or minimize buttons in the title bar). This is the default type for QDialog. If you want to use it as a modal dialog, it should be launched from another window, or have a parent and used with the QWidget::windowModality property. If you make it modal, the dialog will prevent other top-level windows in the application from getting any input. We refer to a top-level window that has a parent as a secondary window.指示小组件是一个窗口,应将其修饰为对话框(即,标题栏中通常没有最大化或最小化按钮)。这是 的缺省类型。如果要将其用作模式对话框,则应从另一个窗口启动它,或者具有父级并与属性一起使用。如果将其设置为模式,则该对话框将阻止应用程序中的其他顶级窗口获取任何输入。我们将具有父窗口的顶级窗口称为辅助窗口。
Qt::Sheet0x00000004 WindowIndicates that the window is a sheet on macOS. Since using a sheet implies window modality, the recommended way is to use QWidget::setWindowModality(), or QDialog::open(), instead.指示窗口是 macOS 上的工作表。由于使用工作表意味着窗口形式,因此推荐的方法是使用 () 或 () 代替。
Qt::DrawerSheet DialogIndicates that the widget is a drawer on macOS. This feature is obsolete. Setting the flag has no effect.指示小组件是 macOS 上的抽屉。此功能已过时。设置标志不起作用。
Qt::Popup0x00000008 WindowIndicates that the widget is a pop-up top-level window, i.e. that it is modal, but has a window system frame appropriate for pop-up menus.指示小组件是弹出式顶级窗口,即它是模式窗口,但具有适用于弹出菜单的窗口系统框架。
Qt::ToolPopup DialogIndicates that the widget is a tool window. A tool window is often a small window with a smaller than usual title bar and decoration, typically used for collections of tool buttons. If there is a parent, the tool window will always be kept on top of it. If there isn’t a parent, you may consider using Qt::WindowStaysOnTopHint as well. If the window system supports it, a tool window can be decorated with a somewhat lighter frame. It can also be combined with Qt::FramelessWindowHint. On macOS, tool windows correspond to the NSPanel class of windows. This means that the window lives on a level above normal windows making it impossible to put a normal window on top of it. By default, tool windows will disappear when the application is inactive. This can be controlled by the Qt::WA_MacAlwaysShowToolWindow attribute.指示小组件是工具窗口。工具窗口通常是一个小窗口,其标题栏和装饰比通常的要小,通常用于工具按钮的集合。如果存在父窗口,则工具窗口将始终保留在其顶部。如果没有父级,您也可以考虑使用 Qt::WindowStaysOnTopHint。如果窗口系统支持它,则可以用较轻的框架来装饰工具窗口。它也可以与Qt::FramelessWindowHint结合使用。在 macOS 上,工具窗口对应于窗口类。这意味着窗户位于普通窗户上方的水平上,因此不可能在其上放置普通窗户。默认情况下,当应用程序处于非活动状态时,工具窗口将消失。这可以通过属性来控制。
Qt::ToolTipPopup SheetIndicates that the widget is a tooltip. This is used internally to implement tooltips.指示小组件是工具提示。这在内部用于实现 。
Qt::SplashScreenToolTip DialogIndicates that the window is a splash screen. This is the default type for QSplashScreen.指示窗口是初始屏幕。这是 的缺省类型。
Qt::Desktop0x00000010 WindowIndicates that this widget is the desktop. This is the type for QDesktopWidget.指示此小组件是桌面。这是 QDesktopWidget 的类型。
Qt::SubWindow0x00000012Indicates that this widget is a sub-window, such as a QMdiSubWindow widget.指示此小组件是子窗口,例如小组件。
Qt::ForeignWindow0x00000020 WindowIndicates that this window object is a handle representing a native platform window created by another process or by manually using native code.指示此窗口对象是一个句柄,表示由另一个进程或使用本机代码手动创建的本机平台窗口。
Qt::CoverWindow0x00000040 WindowIndicates that the window represents a cover window, which is shown when the application is minimized on some platforms.指示窗口表示一个覆盖窗口,当应用程序在某些平台上最小化时显示。
ConstantValueDescription我的翻译
Qt::MSWindowsFixedSizeDialogHint0x00000100Gives the window a thin dialog border on Windows. This style is traditionally used for fixed-size dialogs.在 Windows 上为窗口提供细对话框边框。此样式传统上用于固定大小的对话框

Note: The use of this flag is not recommended in multi-monitor environments. This is because the system will enforce that the window maintains its native size when moving it across screens. This is particularly undesirable when using monitors with different resolutions.
注意:不建议在多显示器环境中使用此标志。这是因为在跨屏幕移动窗口时,系统将强制窗口保持其本机大小。当使用具有不同分辨率的显示器时,这尤其不可取。

ConstantValueDescription我的翻译
Qt::MSWindowsOwnDC0x00000200Gives the window its own display context on Windows.在 Windows 上为窗口提供自己的显示上下文。
Qt::BypassWindowManagerHint0x00000400This flag can be used to indicate to the platform plugin that “all” window manager protocols should be disabled. This flag will behave different depending on what operating system the application is running on and what window manager is running. The flag can be used to get a native window with no configuration set.此标志可用于向平台插件指示应禁用“所有”窗口管理器协议。此标志的行为将有所不同,具体取决于应用程序运行的操作系统和运行的窗口管理器。该标志可用于获取未设置配置的本机窗口。
Qt::X11BypassWindowManagerHintBypassWindowManagerHintBypass the window manager completely. This results in a borderless window that is not managed at all (i.e., no keyboard input unless you call QWidget::activateWindow() manually).完全绕过窗口管理器。这会导致一个完全不受管理的无边框窗口(即,除非您手动调用 (),否则没有键盘输入)。
Qt::FramelessWindowHint0x00000800Produces a borderless window. The user cannot move or resize a borderless window via the window system. On X11, the result of the flag is dependent on the window manager and its ability to understand Motif and/or NETWM hints. Most existing modern window managers can handle this.生成无边框窗口。用户无法通过窗口系统移动无边框窗口或调整其大小。在 X11 上,标志的结果取决于窗口管理器及其理解 Motif 和/或 NETWM 提示的能力。大多数现有的现代窗口管理器都可以处理这个问题。
Qt::NoDropShadowWindowHint0x40000000Disables window drop shadow on supporting platforms.在支持平台上禁用窗口投影。

窗口提示

ConstantValueDescription我的翻译
Qt::CustomizeWindowHint0x02000000Turns off the default window title hints.关闭默认窗口标题提示
Qt::WindowTitleHint0x00001000Gives the window a title bar.为窗口提供标题栏
Qt::WindowSystemMenuHint0x00002000Adds a window system menu, and possibly a close button (for example on Mac). If you need to hide or show a close button, it is more portable to use WindowCloseButtonHint.添加窗口系统菜单,可能还有一个关闭按钮(例如在 Mac 上)。如果需要隐藏或显示关闭按钮,则使用 WindowCloseButtonHint 起来更便携。
Qt::WindowMinimizeButtonHint0x00004000Adds a minimize button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.添加最小化按钮。在某些平台上,这意味着Qt::WindowSystemMenuHint才能工作。
Qt::WindowMaximizeButtonHint0x00008000Adds a maximize button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.添加最大化按钮。在某些平台上,这意味着Qt::WindowSystemMenuHint才能工作。
Qt::WindowMinMaxButtonsHintWindowMinimizeButtonHint WindowMaximizeButtonHintAdds a minimize and a maximize button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.添加最小化和最大化按钮。在某些平台上,这意味着Qt::WindowSystemMenuHint才能工作。
Qt::WindowCloseButtonHint0x08000000Adds a close button. On some platforms this implies Qt::WindowSystemMenuHint for it to work.添加关闭按钮。在某些平台上,这意味着Qt::WindowSystemMenuHint才能工作。
Qt::WindowContextHelpButtonHint0x00010000Adds a context help button to dialogs. On some platforms this implies Qt::WindowSystemMenuHint for it to work.向对话框添加上下文帮助按钮。在某些平台上,这意味着Qt::WindowSystemMenuHint才能工作。
Qt::MacWindowToolBarButtonHint0x10000000On macOS adds a tool bar button (i.e., the oblong button that is on the top right of windows that have toolbars).在 macOS 上,添加一个工具栏按钮(即具有工具栏的窗口右上角的长方形按钮)。
Qt::WindowFullscreenButtonHint0x80000000On macOS adds a fullscreen button.在 macOS 上添加一个全屏按钮。
Qt::BypassGraphicsProxyWidget0x20000000Prevents the window and its children from automatically embedding themselves into a QGraphicsProxyWidget if the parent widget is already embedded. You can set this flag if you want your widget to always be a toplevel widget on the desktop, regardless of whether the parent widget is embedded in a scene or not.如果父窗口小部件已嵌入,则阻止窗口及其子窗口自动将自己嵌入到中。如果您希望微件始终是桌面上的顶级微件,则可以设置此标志,而不管父微件是否嵌入到场景中。
Qt::WindowShadeButtonHint0x00020000Adds a shade button in place of the minimize button if the underlying window manager supports it.添加一个阴影按钮来代替最小化按钮(如果基础窗口管理器支持)。
Qt::WindowStaysOnTopHint0x00040000Informs the window system that the window should stay on top of all other windows. Note that on some window managers on X11 you also have to pass Qt::X11BypassWindowManagerHint for this flag to work correctly.通知窗口系统该窗口应位于所有其他窗口的顶部。请注意,在 X11 上的某些窗口管理器上,您还必须传递 Qt::X11BypassWindowManagerHint 才能使此标志正常工作。
Qt::WindowStaysOnBottomHint0x04000000Informs the window system that the window should stay on bottom of all other windows.通知窗口系统该窗口应位于所有其他窗口的底部。

Note: On X11, this hint will work only in window managers that support _NET_WM_STATE_BELOW atom. If a window always on the bottom has a parent, the parent will also be left on the bottom. This window hint is currently not implemented for macOS.
注意:在 X11 上,此提示仅适用于支持 _NET_WM_STATE_BELOW atom 的窗口管理器。如果始终位于底部的窗口具有父窗口,则父窗口也将保留在底部。此窗口提示目前尚未针对 macOS 实现。

Note: On Windows, this will work only for frameless or full-screen windows.
注意:在 Windows 上,这仅适用于无框或全屏窗口。

ConstantValueDescription我的翻译
Qt::WindowTransparentForInput0x00080000Informs the window system that this window is used only for output (displaying something) and does not take input. Therefore input events should pass through as if it wasn’t there.通知窗口系统此窗口仅用于输出(显示某些内容),而不接受输入。因此,输入事件应该像不存在一样传递。
Qt::WindowOverridesSystemGestures0x00100000Informs the window system that this window implements its own set of gestures and that system level gestures, like for instance three-finger desktop switching, should be disabled.通知窗口系统此窗口实现自己的一组手势,并且应禁用系统级手势,例如三指桌面切换。
Qt::WindowDoesNotAcceptFocus0x00200000Informs the window system that this window should not receive the input focus.通知窗口系统此窗口不应接收输入焦点。
Qt::MaximizeUsingFullscreenGeometryHint0x00400000Informs the window system that when maximizing the window it should use as much of the available screen geometry as possible, including areas that may be covered by system UI such as status bars or application launchers. This may result in the window being placed under these system UIs, but does not guarantee it, depending on whether or not the platform supports it. When the flag is enabled the user is responsible for taking QScreen::availableGeometry() into account, so that any UI elements in the application that require user interaction are not covered by system UI.通知窗口系统,在最大化窗口时,它应尽可能多地使用可用的屏幕几何图形,包括系统 UI 可能覆盖的区域,例如状态栏或应用程序启动器。这可能会导致窗口放置在这些系统 UI 下,但不能保证,具体取决于平台是否支持它。启用该标志后,用户负责将 () 考虑在内,以便系统 UI 不会涵盖应用程序中需要用户交互的任何 UI 元素。
Qt::WindowType_Mask0x000000ffA mask for extracting the window type part of the window flags.用于提取窗口标志的窗口类型部分的掩码。

博客签名2021

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python和django中安装mysqlclient失败的解决方案

在Pychram中和pip中安装mysqlclient都不成功,只能直接下载二进制包进行安装了,下载页面中根据python的版本选择对应WHL包下载,下载地址 mysqlclient PyPIhttps://pypi.org/project/mysqlclient/#files 通过pip命令进行安装 pip install d:\…

Springboot搭建微服务案例之Eureka注册中心

一、父工程依赖管理 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…

网络安全(网络安全)小白自学

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全…

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用&#xff1a; 1.在pc本地 1&#xff09;pip flask后创建一个简单的脚本flask_demo.py from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, World!winR进入命令行&#xff0c;…

【多线程】线程的创建

创建线程如下几个方法&#xff1a; 目录 继承Thread类 调用start方法启动线程 调用run方法 实现Runnable接口 实现Callable接口 继承Thread类 调用start方法启动线程 public class TestThread extends Thread{//继承Thread类//重写run方法public void run(){for(int i0…

【网络】HTTPS协议

HTTPS协议 一、什么是HTTPS二、数据的加密1、常见的加密方式2、数据摘要&#xff08;数据指纹&#xff09;3、数字签名 三、HTTPS 的工作过程探究1、方案 1 - 只使用对称加密2、方案 2 - 只使用非对称加密3、方案 3 - 双方都使用非对称加密4、方案 4 - 非对称加密 对称加密 四…

pb:导入EXCEL,提示“不能连接EXCEL”

pb:导入EXCEL,提示“不能连接EXCEL” ------------------------------------------------------------------------------------------------------------------------------- 1.pb连上EXCEL代码: //从EXCEL读取文件 STRING LS_PATH,LS_FILE,ls_file_tmp oleobject ole_1…

webpack 高级

高级配置就是要进行 webpack 优化&#xff0c;让代码在编译、运行时性能更好 主要从以下角度去优化&#xff1a; 1、提升开发体验 2、提升打包构建速度 3、减少代码体积 4、优化代码运行性能 一、提升体验 1、SourceMap 为什么 打包出来的所有css和js合并成了一个文件&#…

Linux - 进程控制(下篇)- 进程等待

进程等待 为什么进程需要等待&#xff1f; 我们知道&#xff0c;在Linux 当中&#xff0c;父子进程之间一些结构就是一些多叉树的结构&#xff0c;一个父进程可能管理或者创建了很多个字进程。 而其实我们在代码当中使用fork&#xff08;&#xff09;函数创建的子进程的父进程…

tolua中table.remove怎么删除表中符合条件的数据

tolua中table.remove怎么删除表中符合条件的数据 介绍问题&#xff08;错误方式删除数据&#xff09;正确删除方案从后向前删除递归方式删除插入新表方式 拓展一下总结 介绍 在lua中删除表中符合条件的数据其实很简单&#xff0c;但是有一个顺序问题&#xff0c;因为lua的表中…

1.如何实现统一的API前缀-web组件篇

文章目录 1. 问题的由来2.实现原理3. 总结 1. 问题的由来 系统提供了 2 种类型的用户&#xff0c;分别满足对应的管理后台、用户 App 场景。 两种场景的前缀不同&#xff0c;分别为/admin-api/和/app-api/&#xff0c;都写在一个controller里面&#xff0c;显然比较混乱。分开…

Mgeo:multi-modalgeographic language model pre-training

文章目录 question5.1 Geographic Encoder5.1.1 Encoding5.1.2 5.2 multi-modal pre-training 7 conclusionGeo-Encoder: A Chunk-Argument Bi-Encoder Framework for Chinese Geographic Re-Rankingabs ERNIE-GeoL: A Geography-and-Language Pre-trained Model and its Appli…

Gradle笔记 一 Gradle的安装与入门

文章目录 Gradle 入门Gradle 简介学习Gradle 的原因&#xff1a; 常见的项目构建工具Gradle 安装Gradle 安装说明安装JDK 下载并解压到指定目录配置环境变量检测是否安装成功 Gradle 项目目录结构Gradle 创建第一个项目Gradle 中的常用指令修改maven 下载源Wrapper 包装器使用教…

【C++】继承

本期我们来学习c中的继承 目录 一、啥是继承 二、继承的定义 1.1 定义格式 1.2 继承方式 三、基类和派生类对象赋值转换 四、继承中的作用域 五、派生类的默认成员函数 5.1 派生类的构造函数和基类构造函数的关系 5.2 派生类的拷贝函数和基类拷贝函数的关系 5.3 派生…

Python算法例7 四数乘积

1. 问题描述 给定一个长度为n的数组a和一个正整数k&#xff0c;从数组中选择四个数&#xff0c;要求四个数的乘积小于等于k&#xff0c;求方案总数。 2. 问题示例 给定n5&#xff0c;a[1&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;2]&#xff0c;k3&#xff0c;返…

小程序day02

目标 WXML模板语法 数据绑定 事件绑定 那麽問題來了&#xff0c;一次點擊會觸發兩個組件事件的話&#xff0c;該怎么阻止事件冒泡呢&#xff1f; 文本框和data的双向绑定 注意点: 只在标签里面用value“{{info}}”&#xff0c;只会是info到文本框的单向绑定&#xff0c;必须在…

【Linux】多路IO复用技术②——poll详解如何使用poll模型实现简易的一对多服务器(附图解与代码实现)

在阅读本篇博客之前&#xff0c;建议大家先去看一下我之前写的这篇博客&#xff0c;否则你很可能会一头雾水 【Linux】多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器&#xff08;附图解与代码实现&#xff09;http://t.csdnimg.cn/…

JavaEE平台技术——预备知识(Web、Sevlet、Tomcat)

JavaEE平台技术——预备知识&#xff08;Web、Sevlet、Tomcat&#xff09; 1. Web基础知识2. Servlet3. Tomcat并发原理 1. Web基础知识 &#x1f192;&#x1f192;上个CSDN我们讲的是JavaEE的这个渊源&#xff0c;实际上讲了两个小时的历史课&#xff0c;给大家梳理了一下&a…

为机器学习算法准备数据(Machine Learning 研习之八)

本文还是同样建立在前两篇的基础之上的&#xff01; 属性组合实验 希望前面的部分能让您了解探索数据并获得洞察力的几种方法。您发现了一些数据怪癖&#xff0c;您可能希望在将数据提供给机器学习算法之前对其进行清理&#xff0c;并且发现了属性之间有趣的相关性&#xff0c…