翻譯|使用教程|編輯:龔雪|2022-06-09 10:18:32.300|閱讀 176 次
概述:本文主要為大家介紹Qt Widget中的樣式和樣式感知小部件,歡迎大家下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
樣式(繼承的類)代表小部件繪制并封裝 GUI 的外觀。 QStyle 類是一個抽象基類,它封裝了 GUI 的外觀。 Qt 的內置小部件使用它來執行幾乎所有的繪圖,確保它們看起來與等效的原生小部件完全一樣。
Qt帶有一系列內置樣式,某些樣式僅在特定平臺上可用。自定義樣式可作為插件使用,或者通過使用 ()創建特定樣式類的實例并使用()設置它。
Qt技術交流群:166830288 歡迎一起進群討論
原始元素
原始元素是常見的 GUI 元素,并且經常被多個小部件使用。 這些示例包括用于旋轉框、滾動條和組合框的框架、按鈕斜面和箭頭。 原始元素不能單獨存在:它們始終是更大結構的一部分,它們不參與與用戶的交互,只是 GUI 中的被動裝飾。
控制元素
控制元素執行操作或向用戶顯示信息,控制元素的示例是表和樹視圖中的按鈕、復選框和標題部分,它不一定是完整的小部件,例如按鈕,也可以是小部件部件,例如標簽欄選項卡和滾動條滑塊。它們與原始元素的不同之處在于它們不是被動的,而是在與用戶的交互中填充一個功能。 由多個元素組成的控件通常使用樣式來計算元素的邊界矩形,可用的子元素由 SubElement 枚舉定義。 此枚舉僅用于計算邊界矩形; 子元素不是要繪制的圖形元素,如原始元素、控制元素和復雜元素。
復雜的控制元素
復雜的控制元素包含子控件,復制控制的操作會有所不同,具體取決于用戶使用鼠標處理它們的位置以及按下的鍵盤鍵,這取決于鼠標懸停或按下的子控件(如果有)。復雜控制的示例是滾動條和組合框,使用滾動條,您可以使用鼠標移動滑塊并按向上和向下按鈕,可用的子控件由 枚舉定義。
除了繪圖之外,樣式還需要為小部件提供有關鼠標按下的子控件(如果有)的信息。 例如, 需要知道用戶是否按下了滑塊、滑塊凹槽或按鈕當中的一個。請注意,子控件與上一節中描述的控制元素不同,您不能使用樣式來繪制子控件; 該樣式將僅計算應在其中繪制子控件的邊界矩形。但是,復雜元素通常使用控制和原始元素來繪制它們的子控件,這是 Qt 中的內置樣式和 Java 樣式中經常使用的一種方法。例如,Java 風格使用 PE_IndicatorCheckBox 來繪制組框(它是 CC_GroupBox 的子控件)中的復選框。 一些子控件具有等效的控制元素,例如滾動條滑塊(SC_SCrollBarSlider 和 CE_ScrollBarSlider)。
其他QStyle任務
如前所述,樣式元素和小部件使用樣式來計算子元素和子控件的邊界矩形。 像素度量是屏幕像素中與樣式相關的大小,也用于繪圖時的測量。可用的矩形和像素度量由中的三個枚舉表示:、 和 ,枚舉的值可以很容易地識別,因為它們以 SE_、SC_ 和 PM_ 開頭。
該樣式還包含一組樣式提示,它們在 枚舉中表示為值,所有小部件都沒有相同的功能,并且具有不同的樣式。例如,當菜單中的菜單項不適合屏幕上的單個列時,某些樣式支持滾動,而另一些樣式則繪制多個列以適合所有項。
樣式通常有一組標準圖像(例如警告、問題和錯誤圖像),用于消息框、文件對話框等。QStyle 提供了枚舉,它的值代表標準圖像。 Qt 的小部件使用這些,因此當您實現自定義樣式時,您應該提供正在實現的樣式使用的圖像。
該樣式計算布局中小部件之間的間距,樣式可以通過兩種方式處理這些計算。 您可以設置 PM_LayoutHorizontalSpacing 和 PM_LayoutVerticalSpacing,這是 Java 樣式的方式(通過);或者如果您需要對布局的這一部分進行更多控制,您可以實現 () 和 QStyle::layoutSpacingImplementation()。 在這些函數中,您可以根據不同大小策略() 的控件類型() 以及相關小部件的樣式選項來計算間距。
Qt技術交流群:166830288 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網