如何通过Qt样式表设置QPushButton的图标尺寸?
单个按钮的正确样式表写法
你之前的写法存在两个核心问题:一是用image:设置的是按钮背景而非图标,二是qproperty-iconSize需要同时指定宽和高。正确写法如下:
QPushButton#pushButton_Calibration { qproperty-icon: url(:/images/toolkit.png); qproperty-iconSize: 128px 128px; }
qproperty-icon对应QPushButton的icon属性,和代码里的setIcon()效果一致,用来设置按钮的专属图标;qproperty-iconSize必须同时指定宽度和高度,仅写单个值会被Qt忽略。
全局应用到父UI下所有QPushButton
如果要让父UI中的所有子QPushButton统一使用相同的图标尺寸,直接去掉ID选择器,将样式表应用在父UI的顶层控件上即可:
QPushButton { qproperty-iconSize: 128px 128px; }
如果需要给所有按钮统一设置图标,可追加qproperty-icon属性;若每个按钮图标不同,仅保留qproperty-iconSize即可。
你之前写法无效的原因
- 误用
image:属性:image是设置按钮的背景图像,不属于QPushButton的icon属性范畴,因此iconSize不会对其生效; qproperty-iconSize格式错误:仅写128px不符合Qt样式表的语法要求,必须明确指定宽高两个维度的值;- 设置
width/height的局限性:这只会改变按钮本身的尺寸,按钮的图标不会跟随按钮尺寸自动缩放。
例外场景处理
如果某个按钮需要使用不同的图标尺寸,可通过ID选择器覆盖全局设置:
QPushButton#pushButton_Special { qproperty-iconSize: 64px 64px; }
内容的提问来源于stack exchange,提问作者HFOrangefish
相关产品推荐
相关产品推荐

