Qt::WindowFlags

news2024/11/26 4:26:23
头图

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.coloradmin.cn/o/1173441.html

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

相关文章

MSF暴力破解SID和检测Oracle漏洞

暴力破解SID 当我们发现 Oracle 数据库的 1521 端口时,我们可能考虑使用爆破 SID(System Identifier)来进行进一步的探测和认证。在 Oracle 中,SID 是一个数据库的唯一标识符。当用户希望远程连接 Oracle 数据库时,需要了解以下几个要素:SID、用户名、密码以及服务器的 I…

antv/g6之交互模式mode

什么是mode 在 AntV G6 中,“mode” 是用于配置图表交互模式的一种属性。通过设置 “mode”,可以控制图表的行为,以满足不同的交互需求。可能在不同的场景需要展现的交互行为不一样。比如查看模式下点击一个点就选中的状态,在编辑…

ZZ038 物联网应用与服务赛题第J套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (J卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用…

LeetCode 热题100——链表专题

一、俩数相加 2.俩数相加(题目链接) 思路:这题题目首先要看懂,以示例1为例 即 342465807,而产生的新链表为7->0->8. 可以看成简单的从左向右,低位到高位的加法运算,4610,逢…

1115 Counting Nodes in a Binary Search Tree(30分)

题目翻译: 给定一组序列,请建立二叉搜索树 题解思路: 注意是二叉搜索树BST,而非平衡二叉树AVL,两者的区别如下: BST: AVL: 因此只需要采用常规的建树手段即可,需要注…

【ARMv8 SIMD和浮点指令编程】浮点加减乘除指令——四则运算

浮点指令有专门的加减乘除四则运算指令,比如 FADD、FSUB、FMUL、FDIV 等。 1 FADD (scalar) 浮点加法(标量)。该指令将两个源 SIMD&FP 寄存器的浮点值相加,并将结果写入目标 SIMD&FP 寄存器。 该指令可以产生浮点异常。根据 FPCR 中的设置,异常会导致在 FPSR 中…

如何避免 JavaScript 中的内存泄漏?

一、什么是内存泄漏? JavaScript 就是所谓的垃圾回收语言之一,垃圾回收语言通过定期检查哪些先前分配的内存仍然可以从应用程序的其他部分“访问”来帮助开发人员管理内存。垃圾回收语言中泄漏的主要原因是不需要的引用。如果你的 JavaScript 应用程序经…

【Spring源码分析】BeanFactory系列接口解读

认识Bean工厂 一、认识Bean工厂BeanFactoryListableBeanFactoryHierarchicalBeanFactoryAutowireCapableBeanFactoryConfigurableBeanFactoryConfigurableListableBeanFactory 二、总结 一、认识Bean工厂 Spring Bean 工厂是Spring框架提供的一种机制,用于创建和管理…

艺术的维度:洞察AI诈骗,优雅防范之艺术

当前,AI技术的广泛应用为社会公众提供了个性化智能化的信息服务,也给网络诈骗带来可乘之机,如不法分子通过面部替换语音合成等方式制作虚假图像、音频、视频仿冒他人身份实施诈骗、侵害消费者合法权益。 以下是一些常见的AI诈骗例子&#xf…

SurfaceFlinger的硬件Vsync深入分析-千里马android framework车机手机系统开发

背景: 学过或者你看过surfaceflinger相关文章同学都知道,vsync其实都是由surfaceflinger软件层面进行模拟的,但是软件模拟有可能会有误差或偏差,这个时候就需要有个硬件vsync帮忙校准。 故才会在surfaceflinger的systrace出现如下…

MFC串口通信(SerialPort)

目录 1、SerialPort类的介绍和使用: (1)、SerialPort类的功能介绍 (2)、SerialPort类提供接口函数的介绍 1)、InitPort函数 2)、控制串口监视线程函数 3)、获取事件&#xff0c…

一文读懂从 CPU 多级缓存 缓存一致性协议(MESI)到 Java 内存模型

文章目录 CPU 多级缓存 & 缓存一致性协议(MESI)CPU 多级缓存缓存一致性协议(MESI)缓存行(Cache line)四种缓存状态缓存行状态转换多核协同示例网站体验 MESI优化和引入的问题Store Bufferes & Inva…

笔记软件 Keep It mac v2.3.3中文版新增功能

Keep It mac是一款专为 Mac、iPad 和 iPhone 设计的笔记和信息管理应用程序。它允许用户在一个地方组织和管理他们的笔记、网络链接、PDF、图像和其他类型的内容。Keep It 还具有标记、搜索、突出显示、编辑和跨设备同步功能。 Keep It for mac更新日志 修复了更改注释或富文本…

Technology Strategy Pattern 学习笔记5 -Creating the Strategy-Department Context

Creating the Strategy-Department Context 1 situations This pattern helps you organize your thoughts, and consider the department holistically in the following situations 1.1 •Aligning teams around a vision, especially a new direction 1.2 •Setting up a …

图像置乱加密的破解方法

仅仅通过置乱的方式,是无法对图像进行安全加密的。 针对采用置乱方式加密,可以采用多对(明文、密文)推导出加密时所使用的置乱盒。 step1 :初始化 1、使用I表示明文,E表示密文,彼此间关系如下: 2、为了处理上的方便,把二维转换为一维(这里为了说明方便,实际上,大…

2023年金融科技建模大赛(初赛)开箱点评-基于四川新网银行数据集

各位同学大家好,我是Toby老师。2023年金融科技建模大赛(初赛)从今年10月14日开始,11月11日结束。 比赛背景 发展数字经济是“十四五”时期的重大战略规划。2023年,中共中央、国务院印发了《数字中国建设整体布局规划》…

Tomcat免安装版修改标题名称和进程

tomcat免安装版启动后闪退问题 问题描述 在官网下载的tomcat免安装版的你安装完环境后发现启动闪退,tomcat启动依赖环境是JDK,所以需要tomcat对应版本的JDK支持。 tomcat8官网下载地址:https://tomcat.apache.org/ JDK环境官网下载地址&…

【python 深拷贝与浅拷贝】

python 深拷贝与浅拷贝 问题: 在用影刀编写流程的时候发现,明明只修改人名为“小张”对应的字典里面的值,但是所有的人名对应的值都被修改了。 原因: 第14行,设置键值对,值对应的变量“初始打卡类型字…

Java 多线程的三大特性

在JAVA中,线程有原子性、可见性和有序性三大特性。 1.原子性 1.1 定义 对于涉及共享变量的操作,若该操作从其执行线程以外的任意线程来看都是不可分割的,那么我们就说该操作具有原子性。它包含以下两层含义: 访问(读、…

基于8086的出租车计价器系统设计

**单片机设计介绍,1665基于8051单片机与1601LCD的计算器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 一个基于8086的出租车计价器系统可以分为硬件和软件两部分。 硬件部分包括输入设备(例如计价器…