QT遇到過的樣式記錄

此帖主要記錄平常工程里遇到的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上。 二、編輯…