我通過子類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 –