QSS中ID选择器选中正确QPushButton却不生效是什么原因?
问题原因
QSS的ID选择器(语法为控件类型#名称)匹配的是Qt控件的objectName属性,与Python类中的实例变量名无关。你当前仅将实例变量命名为self.button_3,没有给对应的QPushButton控件设置objectName为button_3,因此选择器无法匹配到目标控件,指定样式无法生效。
解决方案
在创建button_3控件后,调用setObjectName方法设置其对象名和QSS选择器匹配即可,修改后的对应代码片段如下:
self.button_1 = QPushButton("button_1") self.button_2 = QPushButton("button_2") self.button_3 = QPushButton("button_3") # 新增这行设置objectName,和QSS选择器中的ID对应 self.button_3.setObjectName("button_3")
ID选择器的优先级高于通用的控件类型选择器,完成设置后button_3会优先应用黄色背景的指定样式,其余按钮继续使用通用的红色背景样式。
内容的提问来源于stack exchange,提问作者EnkiduGilgamesh
相关产品推荐
相关产品推荐

