Qt5 QCSS中image属性url函数后数字的含义是什么?
Qt5样式表中image属性url后数字1的含义
研究Qt5 CSS样式表时,遇到一段QSlider垂直手柄的样式代码,其中image属性的url()后缀了数字1,查阅Qt官方样式表参考文档未找到相关说明,但注意到border-image有类似多参数的用法,特此解析:
相关代码片段
QSlider手柄样式(带数字1的image属性)
QSlider::handle:vertical { image: url(:/GenericWidget/Ressources/vcursor.png) 1; height: 14px; margin-left: -6px; margin-right: -6px; }
Qt样式表示例中的border-image用法(多参数)
QPushButton { color: grey; border-image: url(/home/kamlie/code/button.png) 3 10 3 10; border-top: 3px transparent; border-bottom: 3px transparent; border-right: 10px transparent; border-left: 10px transparent; }
数字1的含义
这个数字是Qt样式表对image属性的切片参数简写,对应border-image-slice的简化规则:
- 在
border-image中,四个数字分别代表上、右、下、左四个方向的切片距离,用于定义图像的可拉伸区域; - 而
image属性后仅写一个数字时,会将该值统一应用到四个方向的切片。
对于这个滑块手柄场景,数字1表示将图像的四个边缘各保留1px作为不可拉伸的固定区域,中间部分拉伸适配控件尺寸,避免小图标拉伸时边缘变形。
需要说明的是,Qt官方文档对image属性的这个用法描述较为模糊,属于Qt对标准CSS的扩展简化,实际使用中常用于小尺寸控件的图标适配。
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

