如何使用QSS为部分而非全部QPushButton设置样式表
你提到的写法是完全可行的,这是Qt样式表中通过对象名匹配特定控件的标准用法。
具体实现步骤
- 先在业务代码中给需要单独配置样式的
QPushButton设置对应对象名,和你qss里#后面的名称保持一致即可:
以C++ Qt为例:
以PyQt/PySide为例:QPushButton *specialBtn = new QPushButton("特殊按钮"); specialBtn->setObjectName("thisbutton");special_btn = QPushButton("特殊按钮") special_btn.setObjectName("thisbutton") - 直接在.qss文件中写入你提到的样式规则即可,该规则只会作用于所有
objectName为thisbutton的QPushButton,不会影响其他普通按钮:QPushButton#thisbutton { /* 你的自定义样式 */ background-color: #2d8cf0; color: #fff; border: none; padding: 4px 12px; }
扩展用法(适合批量设置多组不同样式的按钮)
如果有多类按钮需要设置不同的样式,不想逐个设置对象名,可以用Qt样式表的属性选择器:
- 给同一类按钮添加自定义动态属性,比如所有警告类按钮设置属性
btnType为warning:// C++ 示例 delBtn->setProperty("btnType", "warning"); cancelBtn->setProperty("btnType", "warning"); - 在qss中通过属性选择器匹配所有对应属性的按钮:
QPushButton[btnType="warning"] { background-color: #ed4014; color: #fff; }
内容的提问来源于stack exchange,提问作者temp
相关产品推荐
相关产品推荐

