翻譯|使用教程|編輯:龔雪|2022-07-06 10:29:40.857|閱讀 180 次
概述:本文繼續為大家介紹Qt Widget中的樣式和樣式感知小部件,歡迎大家下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
樣式(繼承的類)代表小部件繪制并封裝 GUI 的外觀。 QStyle 類是一個抽象基類,它封裝了 GUI 的外觀。 Qt 的內置小部件使用它來執行幾乎所有的繪圖,確保它們看起來與等效的原生小部件完全一樣。
Qt帶有一系列內置樣式,某些樣式僅在特定平臺上可用。自定義樣式可作為插件使用,或者通過使用 ()創建特定樣式類的實例并使用()設置它。
Qt技術交流群:166830288 歡迎一起進群討論
每種樣式都提供了一種顏色 - 即,用于繪制小部件的調色板。對于不同的小部件狀態()有一組顏色:激活(窗口中具有鍵盤焦點的小部件)、非激活(用于其他窗口的小部件)和禁用(被禁用的小部件),可以通過查詢State_Active 和 State_Enabled 狀態標志來找到這些狀態。每個集合都包含由 QPalette::ColorRole 枚舉給出的某些顏色角色,角色描述了應該在哪些情況下使用顏色(例如,用于繪制小部件背景、文本或按鈕)。
如何使用顏色角色取決于樣式,例如如果樣式使用漸變,可以使用調色板顏色并使用() 和 ()使其更暗或更亮來創建漸變。通常如果您需要調色板未提供的畫筆,則應嘗試從中派生它。
提供調色板的存儲不同小部件狀態和顏色角色的顏色,樣式的調色板由() 返回。在應用程序 (QApplication::setStyle()) 或小部件 (QWidget::setStyle()) 上設置新樣式時,標準調色板不會自動安裝,因此您必須自己設置調色板 (QApplication::setPalette() ) 或 (QWidget::setPalette())。
不建議對顏色進行硬編碼,因為應用程序和單個小部件可以設置自己的調色板,也可以使用其樣式的調色板進行繪制。請注意,Qt 的小部件都沒有設置自己的調色板,Java 風格確實對某些顏色進行了硬編碼,但僅作為作者的決定; 不建議這樣做。 當然,這并不意味著該樣式在任何調色板中都應該看起來不錯。
實現樣式時,需要考慮幾個問題,我們將在此處提供有關實現的一些提示和建議。
在實現樣式時,需要查看小部件的代碼和基類及其源代碼,這是因為小部件使用不同的樣式,因為不同樣式的虛函數中的實現會影響繪圖的狀態(例如,通過更改 QPainter 狀態而不恢復它和繪制一些元素替代適當的像素度量和子元素)。
建議樣式不要使用()函數改變小部件的建議大小,而是讓 實現來處理它。 如果需要進行更改,則應盡量保持較小; 如果小部件的布局在各種樣式中看起來差別很大,則應用程序開發可能會很困難。
Qt技術交流群:166830288 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網