此帖主要记录平常工程里遇到的qt样式

窗口无边框

原始文档

void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)
Sets the window flag flag on this widget if on is true; otherwise clears the flag.
This function was introduced in Qt 5.9.
See also setWindowFlags(), windowFlags(), and windowType().

QWidget::setWindowFlag(Qt::WindowType flag, bool on = true) 是 Qt 5.9 引入的一个便捷函数,用于动态设置或清除单个窗口标志(Window Flag)。以下是对该函数的详细说明:

setWindowFlags() 会直接覆盖所有标志。
setWindowFlag() 仅修改指定标志,保留其他标志不变。

关键枚举值(Qt::WindowType 部分)

标志作用
FramelessWindowHint无边框窗口
WindowStaysOnTopHint窗口置顶
WindowMinimizeButtonHint显示最小化按钮
WindowMaximizeButtonHint显示最大化按钮
WindowCloseButtonHint显示关闭按钮

优势:比 setWindowFlags() 更安全、更易用(避免覆盖其他标志)。
适用场景:需要动态修改单个窗口属性时。

Qt::WindowType 枚举

标志类型:Qt::WindowFlags
此枚举类型用于指定小部件的各种窗口系统属性。这些属性较为特殊,但在某些情况下是必需的。部分标志的效果取决于底层窗口管理器是否支持。


主要窗口类型

常量描述
Qt::Widget0x00000000QWidget 的默认类型。有父部件时为子部件,无父部件时为独立窗口。参见 Qt::WindowQt::SubWindow
Qt::Window0x00000001表示该小部件是一个窗口(通常带窗口系统边框和标题栏),无论是否有父部件。注意:如果小部件无父部件,则无法取消此标志。
Qt::Dialog0x00000002 | Window表示窗口应装饰为对话框(通常标题栏无最大化/最小化按钮)。QDialog 的默认类型。若需模态对话框,应从其他窗口启动或设置父部件并启用 QWidget::windowModality
Qt::Sheet0x00000004 | Window(macOS 专用)表示窗口为表单(Sheet)。因表单隐含模态性,建议改用 QWidget::setWindowModality()QDialog::open()
Qt::DrawerSheet | Dialog(macOS 专用)表示小部件为抽屉(Drawer)。
Qt::Popup0x00000008 | Window表示窗口为弹出式顶层窗口(模态,但具有适合弹出菜单的窗口系统边框)。
Qt::ToolPopup | Dialog表示窗口为工具窗口(通常标题栏较小,适合工具按钮集合)。若有父窗口,工具窗口将始终置于其上方;若无父窗口,可结合 Qt::WindowStaysOnTopHint
Qt::ToolTipPopup | Sheet表示小部件为工具提示(内部用于实现工具提示)。
Qt::SplashScreenToolTip | Dialog表示窗口为启动画面(QSplashScreen 的默认类型)。
Qt::Desktop0x00000010 | Window表示小部件为桌面(QDesktopWidget 的类型)。
Qt::SubWindow0x00000012表示小部件为子窗口(如 QMdiSubWindow)。
Qt::ForeignWindow0x00000020 | Window表示该窗口对象是代表由其他进程或原生代码创建的本地平台窗口句柄。
Qt::CoverWindow0x00000040 | Window表示窗口为封面窗口(某些平台应用最小化时显示)。

窗口外观定制标志

(仅对顶层窗口有效)

常量描述
Qt::MSWindowsFixedSizeDialogHint0x00000100(Windows 专用)为窗口添加细边框(传统用于固定大小对话框)。
Qt::MSWindowsOwnDC0x00000200(Windows 专用)为窗口分配独立的显示上下文。
Qt::BypassWindowManagerHint0x00000400禁用所有窗口管理器协议(行为因操作系统和窗口管理器而异)。
Qt::X11BypassWindowManagerHintBypassWindowManagerHint(X11 专用)完全绕过窗口管理器,生成无边框且不受管理的窗口(需手动调用 QWidget::activateWindow() 获取键盘输入)。
Qt::FramelessWindowHint0x00000800无边框窗口(用户无法通过窗口系统移动或调整大小,X11 效果取决于窗口管理器)。
Qt::NoDropShadowWindowHint0x40000000在支持的平台上禁用窗口阴影。

窗口控件自定义标志

(需先设置 Qt::CustomizeWindowHint 才能修改以下标志)

常量描述
Qt::CustomizeWindowHint0x02000000关闭默认窗口标题栏提示(允许自定义其他控件标志)。
Qt::WindowTitleHint0x00001000显示标题栏。
Qt::WindowSystemMenuHint0x00002000添加窗口系统菜单(可能含关闭按钮,macOS 需配合 WindowCloseButtonHint)。
Qt::WindowMinimizeButtonHint0x00004000添加最小化按钮(某些平台需同时启用 WindowSystemMenuHint)。
Qt::WindowMaximizeButtonHint0x00008000添加最大化按钮(某些平台需同时启用 WindowSystemMenuHint)。
Qt::WindowMinMaxButtonsHintWindowMinimizeButtonHint | WindowMaximizeButtonHint同时添加最小化和最大化按钮。
Qt::WindowCloseButtonHint0x08000000添加关闭按钮(某些平台需同时启用 WindowSystemMenuHint)。
Qt::WindowContextHelpButtonHint0x00010000在对话框中添加上下文帮助按钮。
Qt::MacWindowToolBarButtonHint0x10000000(macOS 专用)在窗口右上角添加工具栏按钮。
Qt::WindowFullscreenButtonHint0x80000000(macOS 专用)添加全屏按钮。
Qt::BypassGraphicsProxyWidget0x20000000防止窗口及其子部件自动嵌入到 QGraphicsProxyWidget 中。
Qt::WindowShadeButtonHint0x00020000(部分窗口管理器支持)用卷起按钮替代最小化按钮。

其他行为控制标志

常量描述
Qt::WindowStaysOnTopHint0x00040000窗口置顶(X11 需配合 Qt::X11BypassWindowManagerHint)。
Qt::WindowStaysOnBottomHint0x04000000窗口置底(X11 需窗口管理器支持 _NET_WM_STATE_BELOW,macOS 未实现)。
Qt::WindowTransparentForInput0x00080000窗口仅用于显示,不接收输入事件(事件会穿透)。
Qt::WindowOverridesSystemGestures0x00100000禁用系统级手势(如三指切换桌面),由窗口自行处理手势。
Qt::WindowDoesNotAcceptFocus0x00200000窗口不接受输入焦点。
Qt::MaximizeUsingFullscreenGeometryHint0x00400000最大化时使用包括系统 UI 区域(如状态栏)的完整屏幕几何。

其他说明

  • Qt::WindowType_Mask (0x000000ff):用于提取窗口类型标志的掩码。
  • WindowFlagsQFlags<WindowType> 的别名,存储窗口标志的组合。
  • 参见:QWidget::windowFlags 和 Window Flags 示例。

© 2019 The Qt Company Ltd. 文档贡献者保留其版权。
本文档按 GNU 自由文档许可证 1.3 版 授权。
Qt 及相关标识是 The Qt Company Ltd. 在芬兰和其他国家的商标。其他商标归其所有者所有。

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

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

相关文章

软件设计师中级概念题

软件过程模型 1. 瀑布模型&#xff1a; 五个阶段&#xff1a;需求分析、设计、编码、测试、运行与维护。 为软件的开发和维护提供了一种有效的管理模式&#xff0c;它是以文档作为驱动、合适于软件需求很明确的软件项目模型。瀑布模型假设&#xff0c;一个待开发的系统需求是完…

Elasticsearch安装、入门、基础API操作、全文检索、精准查询、地理查询、复合查询、排序、分页、高亮、数据聚合、自动补全、数据同步、ES集群

学习资料&#xff1a; 通过网盘分享的文件&#xff1a;Elasticsearch 链接: https://pan.baidu.com/s/18BxA0BH0G–jwy95uFmFZQ 提取码: yyds 初识ES正向索引倒排索引ES与MySQL 概念对比安装ES操作索引库mapping属性创建索引库{"mappings": {"properties":…

教程:如何查看浏览器扩展程序的源码

在学习前端、自动化或扩展开发时&#xff0c;我们常常会想研究某个浏览器插件的实现逻辑。即使扩展没有公开源码&#xff0c;只要我们本地安装了它&#xff0c;就可以查看它的完整源代码进行学习。✅ 方法一&#xff1a;从浏览器插件目录提取源码 第一步&#xff1a;打开扩展程…

虚拟储能与分布式光伏协同优化:新型电力系统的灵活性解决方案

安科瑞顾强摘要&#xff1a; 在全球能源结构向低碳化、智能化加速转型的背景下&#xff0c;分布式光伏的大规模接入为电力系统带来机遇的同时&#xff0c;也因其波动性与间歇性带来了运行挑战。本文聚焦于虚拟储能系统&#xff08;Virtual Energy Storage System, VESS&#xf…

java valueOf方法

一,什么是valueOf方法?valueOf是java包装类(比如Long,Integer等)中提供的一个静态方法二,valueOf的主要作用是什么主要作用是将其他类型的数据转换为当前包装类的对象三,代码实例:咱们以Long.valueOf为例,1,他可以接受一个long类型的数值,返回对应的Long对象(把基本类型long包…

工业平板电脑 vs 消费级平板:从防护等级到使用寿命全方面对比

平板电脑已经广泛应用于各个行业。但你知道吗&#xff1f;市面上常见的“平板”其实可以分为两大类&#xff1a;工业平板电脑和消费级平板电脑。虽然它们看起来都是“平板”&#xff0c;但用途、性能和适用场景却大不相同。今天&#xff0c;我们就来聊聊这两者的区别&#xff0…

MySQL技术笔记-索引+慢 SQL+锁 全链路优化实战

目录 前言 MySQL索引 一、概述 二、索引分类 &#xff08;一&#xff09;按功能特性分类 &#xff08;二&#xff09;按存储方式分类 &#xff08;三&#xff09;按数据结构分类 &#xff08;四&#xff09;按索引字段数量分类 三、索引的优缺点 &#xff08;一&…

S7-1200 与 S7-300 PNS7-400 PN UDP 通信 TIA 相同项目

7-1200 与 S7-300 PN/S7-400 PN UDP 通信 TIA 相同项目S7-1200 与 S7-300 PN 口之间的以太网通信可以通过 UDP 协议来实现&#xff0c;使用的通信指令是在双方 CPU 调用通信-开放式用户通信TSEND_C&#xff0c;TRCV_C&#xff08;1200支持&#xff0c;300不支持&#xff09;或T…

java进阶(二)+学习笔记

面向对象设计原则1. 面向对象概念面向对象 是一种编程思想&#xff0c;面向过程是关注实现的步骤&#xff0c;每个步骤定义一个函数&#xff0c;调用函数执行即可。面向对象关注的是谁(对象)来执行&#xff0c; 把具有相同属性和行为的一类事物(对象)进行抽象成类&#…

[附源码+数据库+毕业论]基于Spring Boot+mysql+vue结合内容推荐算法的学生咨询系统

摘要 随着互联网的普及&#xff0c;学生在学习和生活中面临着海量信息&#xff0c;如何高效获取有价值的内容成为亟待解决的问题。本文基于 Spring Boot 框架&#xff0c;结合内容推荐算法&#xff0c;设计并实现了一个学生咨询系统。系统采用 Spring Boot MyBatis MySQL Vu…

DeepSeek 微调实践:DeepSeek-R1 大模型基于 MS-Swift 框架部署 / 推理 / 微调实践大全

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》&#xff08;跟我一起学人工智能&#xff09;【陈敬雷编著】【清华大学出版社】 GPT多模态大模型与AI Agent智能体书籍本章配套视频课程【陈敬雷】 文…

python基础知识pip配置pip.conf文件

pip.conf一、 INI格式二、 级别三、 文件位置四、 加载顺序五、 常用一、 INI格式 配置文件可以更改pip命令行选项的默认值&#xff0c;这个文件是使用INI格式编写的。 INI格式 主要包含三个内容&#xff1a;1.节section 2.键值对 3.注释 [section1] key1 value1 \\注释 key2…

深入理解 Java JVM

文章目录&#x1f4d5;1. JVM简介&#x1f4d5;2. JVM运行流程&#x1f4d5;3. JVM运行时数据区&#x1f4d5;4. JVM类加载✏️4.1 类加载过程✏️4.2 双亲委派模型✏️4.3 破坏双亲委派模型&#x1f4d5;5. JVM垃圾回收机制&#xff08;GC机制&#xff09;✏️5.1 判断死亡对象…

Linux内核高效之道:Slab分配器与task_struct缓存管理

前言 在Linux内核中&#xff0c;进程创建与销毁是最频繁的操作之一。想象一下&#xff1a;当系统每秒需要处理成百上千次fork()和exit()调用时&#xff0c;如何保证task_struct&#xff08;进程描述符&#xff09;的分配与释放既快速又不产生内存碎片&#xff1f;这就是Slab分配…

双esp8266-01之间UDP透传传输,自定义协议

使用AT模式的透传&#xff0c;串口打印的数据包含pd1,4,数据打印的数据不是直接将数据打印出来&#xff0c;包含了pd1,4,特殊字符&#xff0c;针对想要直接开机直接透传&#xff0c;打印数据且按照自主协议帧头的功能进行开发。1.server程序&#xff1a;/*************SERVER**…

BGP 路由优选属性(7)【MED】官方考试综合实验题【bgp】【acl】【ip-prefix】【route-policy】【icmp 环路】精讲

目录 一、MED 属性介绍 二、实验 2.1 实验目的 2.2 拓扑图 2.2 实验说明 2.3 配置脚本 2.4 验证配置 2.5 问题分析 2.7 题目需求解析 2.8 场景 1&#xff1a;只允许在 AS12 上操作 2.9 场景 2&#xff1a;只允许在 AS34 上操作 正文 一、MED 属性介绍 MED 全称 mu…

html-初级标签

一.浏览器能识别的标签 1.1 head标签里的编码和title <head><meta charset"UTF-8"><title>Title</title> </head>1.2 标题 <body><h1>Welcome to my website</h1><h2>Welcome to my website</h2><…

【八股消消乐】Kafka集群 full GC 解决方案

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

《Java Web程序设计》实验报告二 学习使用HTML标签、表格、表单

目 录 一、实验目的 二、实验环境 三、实验步骤和内容 1、小组成员分工&#xff08;共计4人&#xff09; 2、实验方案 3、实验结果与分析 4、项目任务评价 四、遇到的问题和解决方法 五、实验总结 一、实验目的 1、HTML基础知识、基本概念 2、使用HTML标签、表格进行…

jenkins使用Jenkinsfile部署springboot+docker项目

文章目录前言一、前期准备二、编辑构建文件二、Jenkins构建总结前言 前面使用Jenkinsfile部署了前端vue项目&#xff0c;接着学习Jenkinsfile部署springboot项目。 一、前期准备 已经安装好centos,并且安装了jenkins和docker。本地新建springboot并上传到gitee上。 二、编辑…