我需要根据程序中发生的操作更改样式。HTML页面上JS的模拟,您可以在CSS中添加、删除类,仅在PyQt中。
我试着做这样的事情:
if strength < 33:
self.reliability.setObjectName('rel-0')
elif strength < 66:
self.reliability.setObjectName('rel-1')
else:
self.reliability.setObjectName('rel-2')
之前在样式文件中编写了这些选择器:
#rel-0, #rel-1, #rel-2 {
border: 2px solid #453e3e;
border-radius: 5px;
text-align: center;
background-color: #453e3e;
color: rgba(69, 62, 62, 0);
}
#rel-0::chunk {
background-color: #ed0909;
}
#rel-1::chunk {
background-color: #e3c010;
}
#rel-2::chunk {
background-color: #44d111;
}
但是,显然,在更改时,ObjectName元素不会更新这些标识符中固有的样式。
我也试过做repaint()and update()。但显然他们也没有“看到”风格的变化。
PS:你真的必须每次都这样做吗setStylesheet()?
更改对象的名称是个坏主意,我建议您这样尝试: