Qt界面美化QSS——(二)盒子模型(Box Model)

1.盒模型

使用樣式表時,每個widget都被視爲包含四個同心矩形的框邊距矩形(margin rectangle)、邊框矩形(border rectangle)、填充矩形(padding rectangle)和內容矩形(content rectangle)。盒子模型如下圖所示:

在這裏插入圖片描述

邊距(margin)、邊框(border)寬度和填充(padding)屬性都默認爲零。在這種情況下,所有四個矩形(邊距、邊框、填充和內容)完全重合。

可以使用background-image(背景圖片)屬性指定widget的背景。默認情況下,僅爲邊框內的區域繪製背景圖像,但是可以通過background-clip(背景剪裁)屬性進行更改。可以使用background-repeat(背景重複)和background-origin(背景原點)來控制背景圖像的重複和原點。

背景圖像不隨widget的大小縮放。要實現隨 widget 大小縮放的“皮膚”或背景,必須使用border-image(邊框圖像)。由於 border-image 屬性提供了備用背景,因此在指定border-image 時不需要指定 background-image。當兩者都被設置時,border-image 繪製在 background-image 上。

此外,圖像屬性可用於在 border-image 上繪製圖像。當指定的圖像大小與 widget 的大小不匹配時,圖像不會平鋪(tile)或拉伸(stretch),需要使用image-position屬性指定其對齊方式。與background-image和border-image不同,您可以在 image 屬性中指定SVG,在這種情況下,圖像會根據 widget 的大小自動縮放。

Qt 的繪製的步驟如下:

  1. 爲整個渲染操作設置剪輯(border-radius)。
  2. 繪製背景(background-image)。
  3. 繪製邊框(border-imageborder)。
  4. 繪製疊加圖像(image)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章