我通过子类QPushButton
创建自定义按钮类。但是由于某种原因,在其构造函数中设置该类的CSS不起作用;我必须在例如paintEvent
这样做,那么一切都很好。我可以只有一个全局文件.qss
并将其设置为整个应用程序,但我希望该类管理自己的样式。为什么我的方法不工作?在QPushButton的子类的构造函数中设置CSS
的代码:
custompushbutton.h
class CustomPushButton: public QPushButton
{
Q_OBJECT
public:
explicit CustomPushButton(QWidget *parent = 0);
~CustomPushButton() = default;
};
custompushbutton.cpp
CustomPushButton::CustomPushButton(QWidget *parent)
: QPushButton(parent)
{
setStyleSheet("background-color: black;"); // this does not work
}
编辑:对于未来的读者,如果你有类似的问题(即Qt似乎忽略了你在代码中设置的CSS),看看你是否没有在Qt Creator中编辑对象的styleSheet
属性 - 在属性列表中向下滚动并确保styleSheet
是空的而不是BOLD--这是我的情况。如果它是粗体,这意味着Qt仍然使用该空白字段作为对象的CSS,从而覆盖您的样式。要清除它,可以点击Qt Creator中字段旁边的小箭头,也可以打开.ui文件并删除XML属性<styleSheet>
。
感谢JMik指引我朝着正确的方向。
它为我工作Qt的5.5和Linux –