Qt樣式表之盒子模型(以QSS來講解,而不是CSS)


說起樣式表,不得不提的就是盒子模型了,今天小豆君就來給大家介紹下盒子模型。

 

上圖是一張盒子模型圖。

 

對於一個窗口,其包括四個矩形邊框。以中間的邊框矩形(border)為基准,在border外側的是外邊框矩形(margin),在border內側的是內邊框矩形(padding),在pandding內側的是內容區矩形(content)。

 

在默認情況下,外邊框和內邊框的寬度為0,因此,這四個矩形區域就會重疊在一起。但你可以通過padding,margin屬性來設置內外矩形的邊寬。

 

矩形邊框是用來設置窗口背景的。下面,我就來講講如何用這四個矩形來設置窗口背景。

 

1 為指定的矩形框,設置背景圖片

 

為控件設置背景圖片可以使用background-image屬性,例如

QLabel{bakcground-image:url(:/background.png;)}

 

默認情況下,該背景圖片會設置在border矩形區域中,但是,你可以使用bakground-clip來指定其繪制在margin,padding或content矩形區域中。

例如

QLabel {

background-image: url(:/images/header.png);

background-clip: padding;

}

 

2 指定背景圖片繪制起始點

 

有時我們需要指定從圖片的哪個起始點來繪制背景,這時,你可以通過background-position來指定,默認情況下是從左上角開始繪制(top left)。

例如

QLabel {

background: url(:/images/footer.png);

background-position: bottom left;

background-origin:padding;

}

該樣式指定了從圖片的右下角開始繪制背景到padding矩形區域中。

 

3 指定背景圖片的重復樣式

 

使用background-image會使用圖片的原始大小來繪制背景,如果圖片區域小於背景區域,則會重復使用該圖片進行背景填充,而重復方式可以通過background-repeat來指定。如果想通過圖片的縮放來填充背景圖的話,可以使用border-image屬性來設置。

例如

QLabel {

background-image: url(F:/Picture/Qt/small.jpg);

background-repeat:repeat-x ;

}

指定了只在水平方向重復。

4 使用其他屬性設置背景圖片

 

我們還可以使用image和border-image來設置控件的背景圖片。

image:設置背景圖片,當矩形區域大於圖片尺寸時,圖片不會被放大。並且默認情況下顯示在矩形區域中心,可以通過image-position來指定位置。

border-image:會通過縮放來填滿整個矩形區域。

 

image border-image background-image繪制順序:image繪制在border-image之上,border-image繪制在background-image之上。

 

5 例子

下面是一個例子來幫助大家加深記憶。

好了,關於盒子模型及背景設置的知識就分享到這里啦,最后不要忘記點贊哦。

 

更多分享請關注微信公眾號:小豆君Qt分享,只要關注,便可加入C++\Qt交流群,一起學習。

https://zhuanlan.zhihu.com/p/36474238


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM