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.mzph.cn/news/134902.shtml

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

相关文章

在Kotlin中设置User-Agent以模拟搜索引擎爬虫

前言 随着双十一电商活动的临近,电商平台成为了狂欢的中心。对于商家和消费者来说,了解市场趋势和竞争对手的信息至关重要。在这个数字时代,爬虫技术成为了获取电商数据的有力工具之一。本文将以亚马逊为例,介绍如何使用Kotlin编…

软件测试面试题【2023最新合集】

收集了各大公司的面试经验,现整理出来,希望能给正在找工作的志同道合的小伙伴一些指引,本文会持续更新的哦。 1、 CPU 和 GPU的区别 一个是通用计算,一个是专用计算。 CPU主要负责操作系统和应用程序,GPU主要负责跟…

【BUG解决】服务器没报警但是应用接口崩了....

最近遇到一个突发问题:服务器没报警但是应用接口崩了… 为其他业务系统提供一个接口,平时好好的,突然就嚷嚷反馈说访问不了了,吓得我赶紧跳起来! 正常情况下在系统崩溃前,我会收到很多系统报警&#xff0…

【AI编程】ai编程插件汇总iFlyCode、codegeex

1、iFlyCode 开发公司:讯飞 支持IDE: VS Code、IntelliJ IDEA、CLion、PyCharm、WebStorm 支持语言: Python、JavaScript、C、Java 下载地址:https://iflycode.xfyun.cn/ iFlyCode 快捷键列表:  Tab 采纳建议  Esc 拒绝建议  Alt\ 主动…

CSDN每日一题学习训练——Java版(对给定的两个日期之间的日期进行遍历、子集 II、填充每个节点的下一个右侧节点指针)

版本说明 当前版本号[20231107]。 版本修改说明20231107初版 目录 文章目录 版本说明目录对给定的两个日期之间的日期进行遍历题目解题思路代码思路参考代码 子集 II题目解题思路代码思路参考代码 填充每个节点的下一个右侧节点指针题目解题思路代码思路参考代码 对给定的两…

Flink架构

1、Apache Flink集群的核心架构: 1、client(作业客户端):提交任务的地方叫做客户端 2、JobManager(作业管理器):作用是用于管理集群中任务 3、TaskManager(任务管理器)&a…

WPF布局与控件分类

Refer:WPF从假入门到真的入门 - 知乎 (zhihu.com) Refer:WPF从假入门到真的入门 - 知乎 (zhihu.com) https://www.zhihu.com/column/c_1397867519101755392 https://blog.csdn.net/qq_44034384/article/details/106154954 https://www.cnblogs.com/mq0…

unittest 统计测试执行case总数,成功数量,失败数量,输出至文件,生成一个简易的html报告带饼图

这是一个Python的单元测试框架的示例代码,主要用于执行测试用例并生成测试报告。其中,通过unittest模块创建主测试类MainTestCase,并加载其他文件中的测试用例,统计用例的执行结果并将结果写入文件,最后生成一个简单的…

无人机航迹规划:五种最新智能优化算法(KOA、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(KOA、COA、LSO、GRO、LO)简介 1、开普勒优化算法KOA 开普勒优化算法(Kepler optimization algorithm,KOA)由Mohamed Abdel-Basset等人于2023年提出。五种最新优化算法(SWO、ZOA、EVO、KOA、…

【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割10(测试推理篇)

对于直接将裁剪的patch,一个个的放到训练好的模型中进行预测,这部分代码可以直接参考前面的训练部分就行了。其实说白了,就是验证部分。不使用dataloader的方法,也只需要修改少部分代码即可。 但是,这种方法是不end t…

Intel oneAPI笔记(4)--jupyter官方文档(Unified Shared Memory)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/03_Unified_Shared_Memory文档的学习记录,主要包含对统一共享内存的讲解 USM概述 USM (Unified Shared Memory)是SYCL中基于指针的内存管理。对于使用malloc或new来分配数据的C和C程序员来说应该很熟悉。当将现有的C…

关于卷积神经网络的填充(padding)

认识填充 (padding) 随着卷积层数的加深,输出进一步缩小,那么最终会导致输出很快就只剩下1∗1的数组,这也就没办法继续计算了,所以提出了填充的方法来方便网络的进一步加深。 其实填充的原因有两点&#xf…

MapReduce:大数据处理的范式

一、介绍 在当今的数字时代,生成和收集的数据量正以前所未有的速度增长。这种数据的爆炸式增长催生了大数据领域,传统的数据处理方法往往不足。MapReduce是一个编程模型和相关框架,已成为应对大数据处理挑战的强大解决方案。本文探讨了MapRed…

ESP32 未来能够取代 STM32吗?

今日话题,ESP32 未来能够取代 STM32吗?ESP32和STM32各自有其特点和优势,能否取代彼此取决于具体应用和需求。STM32的流行除了性价比外,还有其强大的开发环境,例如Cubemx能够快速生成代码,使得上手STM32的速…

解决 win11 vmware 中centos 网络不能访问外网

解决 win11 vmware 中centos 网络不能访问外网 1、进入win11 高级设置,找到centos 虚拟机使用的网卡 2、看网卡的其他属性 3、按照红圈部分,配置成一样的就行 4、进入到虚拟机配置中,配置成如图一样的NAT模式 5、再进入编辑 -》虚拟网络编辑…

基于CLIP的图像分类、语义分割和目标检测

OpenAI CLIP模型是一个创造性的突破; 它以与文本相同的方式处理图像。 令人惊讶的是,如果进行大规模训练,效果非常好。 在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D…

vue中插槽slot

一、插槽-默认插槽 1.作用 让组件内部的一些 结构 支持 自定义 2.需求 将需要多次显示的对话框,封装成一个组件 3.问题 组件的内容部分,不希望写死,希望能使用的时候自定义。怎么办 4.插槽的基本语法 组件内需要定制的结构部分,改用&l…

AUTOSAR Gateway 功能

目录 AUTOSAR Gateway 功能1. Signal/SignalGroup 路由1.1 Signal/SignalGroup 路由的配置 2. PDU部分路由2.1 部分路由配置 3. PDU整体路由4. 总结 AUTOSAR Gateway 功能 Com 模块提供Signal 到Signal 的静态路由,或者SigGrp 到SigGrp的静态路由。通过ComGwMappin…

【VSS版本控制工具】

VSS版本控制工具 1 安装 VSS2 服务器端配置3 新建用户4 客户端配置Vss2005Vs20055 客户端详细操作 1 安装 VSS 第一步:将VisualSourceSafe2005安装包解压。 第二步:找到setup.exe双击运行。 第三步:在弹出的界面复选框中选中Iaccepttheterms…

小程序如何设置自取模式下的服务方式

设置自取模式下的服务方式是非常重要的,尤其是对于到店自取和到店堂食这两种不同的服务模式。下面我们就来介绍一下如何在小程序中设置这两种服务方式。 在小程序管理员后台->配送设置处,在服务方式处,设置自取情况下的服务方式。默认是&…