qss指向不同对象失效。
问题主要存在于,用户自己new的对象,不是ui文件拖拽的,qss会不认识,我就忽略了这一点,解决办法即自己创建的控件需要自己设置一下在qss文件里的名字
QPushButton#bt1:hover{
color: #FFFFFF;
background-color: #8EC8FD;
border-color: #8EC8FD;
}
#bt1 是精确指定 objectName 为 bt1 的按钮控件的属性,对其他按钮控件不生效。
注意,bt1 并不是你在类中定义的 QPushButton 对象的名字,而是 QSS 使用 objectName() 接口指定的名字。
class XWidget : public QWidget {
Q_OBJECT
public:
explicit XWidget(QWidget *parent = nullptr);
private:
QPushButton *button;
};
这里定义了一个button,在qss文件里使用#button没用,qss不认识,需要设置:
button->setObjectName("bt1");