日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QSS

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QSS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自:https://qtdebug.com/qtbook-qss/

Qt 提供的 widget 的默認外觀很多時候都不符合項目的界面需求,必須要改,修改一個 widget 的外觀(Look and Feel)有以下的方法:

  • 繼承 Widget,然后在 paintEvent() 里繪制
  • 繼承 QStyle
  • 使用 QSS(Qt Style Sheet)
  • 對于 item view 來說還有一種方式,還可以使用 Delegate

這幾種方式里最簡單靈活的是使用 QSS,雖然有人說 QSS 的效率低,具體有多低沒測試過,但是在普通 PC 上從來沒感覺出來,再說現在的硬件也不差這么點性能消耗,隨便一個寫的差點的函數的消耗就比這多的多,作為一個實用主義者,不追求理論上的效率完美,能滿足需求的前提下什么好用用什么,QSS 就是修改 widget 外觀的首選,什么效果不滿意,修改一下 QSS 的文件就可以看到效果,甚至不需要重新編譯、打包發布程序(如果把 QSS 放在文件中,并且實現動態加載 QSS)。

我們按下面的章節來介紹 QSS:

  • QSS 基礎
  • 加載 QSS
  • 盒子模型
  • QSS 選擇器
  • Border-Image
  • QSS Subcontrol
  • QSS CalendarWidget

?

border-image用于給border(邊框)貼上背景圖像

類似于CSS中的background(背景)屬性。 例如:background:url(xx.jpg) 27px no-repeat;指的是圖片(url(xx.jpg)),位置(27px),重復性(no-repeat)。

border-image與此類似,border-image包括圖片,剪裁位置(與background位置一樣,也是數值,也支持百分值),重復性。
例如:border-image:url(border.png) 27 repeat; 指的就是圖片(url(border.png)),剪裁位置(27),重復方式(repeat)。

下面我們將border-image的復合寫法分解描述,border-image的主要參數就是上面提到的三個:圖片,剪裁位置,重復性。 其實還有另外兩個,文章最后面再講。更好理解

1、圖片(border-image-source)

  • border-image的背景圖使用url()調用,圖片可以是相對路徑或是絕對路徑,也可以不使用圖片,即border-image:none;

2、圖片剪裁位置(border-image-slice)

  • 沒有單位,默認單位就是像素(px)。例如:border-image:url(border.png) 27 repeat;這里的27專指27px。

  • 支持百分比值,百分比值大小是相對于邊框圖片的大小,假設邊框圖片大小為400px*300px,則20%的實際效果就是剪裁了圖片的60px 80px 60px 80px的四邊大小。

  • 剪裁特性。類似于CSS中的clip屬性。其有1~4個參數,代表上右下左四個方位的剪裁,符合CSS普遍的方位規則(與margin,padding等或border-width一致),舉個簡單的例子,前面提到,支持百分比寬度,所以這里“30% 35% 40% 30%”的示意可以用下圖表示:

距離圖片上部30%的地方,距離右邊35%,距離底部40%,左邊30%的地方各剪裁一下。也就是對圖片進行了“四刀切”,形成了九個分離的區域,這就是九宮格,這是下面深入講解border-image的基礎。

3、重復性(border-image-repeat)

取值為repeat(重復)只是其中之一,其余兩個是round(平鋪)和stretch(拉伸)。其中,stretch是默認值。

參數0~2個,0則使用默認值 – stretch,例如:border-image:url(border.png) 30% 40%;就等同于border-image:url(border.png) 30% 40% stretch stretch;;1則表示水平方向及垂直方向均使用此參數;2個參數的話則第一個參數表水平方向,第二個參數表示垂直方向。例如:border-image:url(border.png) 30% 40% round repeat;表示水平方向round(平鋪),垂直方向repeat(重復)。

關于round 和repeat 的區別。
round會湊整填充(進行了適度的拉伸)。repeat不進行拉伸,不湊整。 具體效果看文章后邊的例子。

4、實際渲染規則

通過裁切屬性值,將邊框背景圖切出了“九宮格”的模型,那這張背景圖怎么對應地貼在div的邊框上呢?

<————————>

  • 如圖 在border-image中的橙紅色的四個邊角只會呆在border的四個角,并且水平和垂直方向均被拉伸來填充border的四個角。
  • 如圖 上下區域即border-top-image和border-bottom-image受到第一個參數——水平方向效果影響:如果為repeat,則此區域被水平重復(round水平平鋪,stretch水平拉伸)來填充對應的上下border【該區域在垂直方向上首先會按所對應的border-image-width的值等比縮放,然后再按參數設置在邊框水平方向上進行重復或平鋪或拉伸】
  • 左右區域border-left-image和border-right-image 的作用效果亦然【該區域在水平方向上首先會按所對應的border-image-width的值等比縮放,然后再按參數設置在邊框垂直方向上進行重復或平鋪或拉伸】



我們用下圖(27×3)px *(27×3)pxpng 做實驗,我給不同部位加了一個序號做標志,便于觀察。

// 加一個藍色背景的父級,便于我們分析效果。.border_image {width: 400px;height: 115px;border: 3em double orange;-webkit-border-image: url(border.png) 27 round;border-image: url(border.png) 27 round;}.box {background: blue;}<div class="box"><div class="border_image"></div></div>

效果如下


//去掉重復屬性,即默認都為stretchborder-image: url(border.png) 27;

效果如下


//使用repeatborder-image: url(border.png) 27 repeat;

效果如下



//邊框寬度改變border-image: url(border.png) 27 repeat stretch;border-width: 3rem 1rem;

效果如下



5、(邊框背景寬度)border-image-width

這個屬性默認是邊框的寬度,用來限制相應區域背景圖的范圍, 首先相應背景區域的圖像會根據這個屬性值進行縮放。然后再重復或平鋪或拉伸。在復合寫法中應該位于 slice屬性 和repeat屬性中間 用“/”間隔 如:border-image:url(border.png) 27 / 6rem / repeat;

語法:border-image-width: [ <length> | <percentage> | <number> | auto ]{1,4}

length 帶 px, em, in … 單位的尺寸值 percentage 百分比 number 不帶單位的數字;它表示 border-width 的倍數 auto 使用 auto, border-image-width 將會使用 border-image-slice 的值 border: 3em double orange;border-image: url(border.png) 27 round;border-image-width: 6rem;

效果如下
(白框為border)

border-image-width: 1.5rem;

效果如下
(白框為border)


border: 3em double orange;border-image: url(border.png) 27 round;border-image-width: 6rem 1.5rem;

效果如下
(白框為border)

6、(邊框背景擴散)border-image-outset

語法:border-image-outset: [ <length> | <number> ]{1,4} 相當于把原來的貼圖位置向外延伸。不能為負值,試一下就知道。在復合寫法中應該位于 border-image-width 后面,用“/”間隔 如:border-image:url(border.png) 27 / 6rem / 1.5rem /repeat; 向外延伸1.5rem再貼圖。。 border: 3em double orange;border-image: url(border.png) 27 round;border-image-width: 1.5rem;border-image-outset: 1.5rem;

效果如下:
(白框為border)

ps 部分資料來源網絡

總結

以上是生活随笔為你收集整理的QSS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 粉嫩av一区二区三区 | 国产乱子伦精品无码专区 | 51精品国自产在线 | 人人射av| 大波大乳videos巨大 | 成人在线观看免费网站 | 午夜精品福利在线 | 妻色成人网 | 亚洲黄色小说图片 | 欧美精品亚洲精品日韩精品 | 你懂的国产视频 | 黄色网页网站 | wwwxxx日韩 | 成年人免费毛片 | 免费看黄色片子 | 日日网站 | 亚洲免费精品视频在线观看 | 亚洲视频 欧美视频 | 91精品国产色综合久久不卡电影 | 精品在线观看一区 | 欧美v亚洲 | 欧美成人精品在线观看 | 男男做爰猛烈啪啪高 | 色99999| 日韩精品久久久久久免费 | 亚洲av无码国产在丝袜线观看 | 国产女大学生av | 日本精品一区二区三区四区 | 丝袜五月天 | 日本大尺度做爰呻吟 | 久久99精品久久只有精品 | 亚洲国产精品成人久久蜜臀 | 国产色网| 毛片com | 日一日干一干 | 在线视频在线观看 | 人妻人人澡人人添人人爽 | 欧美激情va永久在线播放 | 免费拍拍拍网站 | 99国产精品一区二区 | 综合亚洲欧美 | 蝌蚪久久 | av在线视 | 男人和女人做爽爽视频 | 99热一区 | 国产一二 | 欧美亚洲91| 欧美亚州 | 国产激情在线播放 | 成人免费观看视频 | 欧美日本色 | 中文字幕丝袜诱惑 | 日本不卡一区在线 | 在线观看福利电影 | 青娱网电信一区电信二区电信三区 | 大胸奶汁乳流奶水出来h | 久久阁| 影音先锋国产在线 | 另类小说亚洲色图 | www黄色在线观看 | 国产精品永久免费视频 | 男人草女人 | 成人在线欧美 | 国产一区导航 | 天狂传说之巴啦啦小魔仙 | 国产性生活毛片 | 九九碰 | 日韩不卡高清 | 午夜91视频| 久久免费看 | 黑料网在线观看 | 中文字幕视频在线观看 | 学生孕妇videosex性欧美 | 毛片av免费 | 奇米影视第四色7777 | 天天综合干 | 亚洲欧美伦理 | 欧美福利片在线观看 | 爱爱视频在线播放 | 五月的婷婷 | 国产视频综合 | 国产一级淫 | 亚洲乱熟 | 国产做爰xxxⅹ久久久精华液 | 国内一区二区视频 | 香蕉免费在线视频 | 青青青视频在线 | 91视频看 | 国产又粗又猛又爽又黄av | 91精品又粗又猛又爽 | 99色图 | 日日摸日日添日日碰9学生露脸 | 黄片毛片在线 | 国产系列在线 | 久久国产一区 | av一级久久 | 欧美另类专区 | 国产性爱精品视频 | 亚洲av无一区二区三区怡春院 |