是否可以在不再调用setStyleSheet的情况下更改样式表中的一个特定属性?我通过使用属性选择器(类似于CSS)和定义"类型"的自定义属性解决了一些简单的情况。或"州"小部件。
假设我需要在运行时更改边框宽度。为此我应该更改属性" border",并且我已经定义了类型为int的自定义属性borderWidth。 CSS支持伪函数attr(),它可用于计算另一个属性的值。显然它不适用于Qt样式表,例如
QTablo [state="3"] {
border: attr(qproperty-borderWidth);
}
unpolish(); polish(); update();例行公事我看不出没有变化。除了设置样式之外,还有其他解决方法吗?
答案 0 :(得分:1)
请注意,Qt仅支持CSS2的子集,attr()似乎首先在CSS2.1中提及。
你可以:
QFrame
并更改其属性,而不是使用样式表。QString("border-width: %1px;").arg(borderWidth);
。QProxyStyle
中返回正确值的自定义pixelMetric()
。