我試圖在Qt5中更改QAbstractButton(QPushButton或QCheckBox)的背景顏色並且運氣不錯。Qt5 - 將背景顏色設置爲QPushButton和QCheckBox
這無助:
pButton->setAutoFillBackground(true);
QPalette palette = pButton->palette();
palette.setColor(QPalette::Window, QColor(Qt::blue));
pButton->setPalette(palette);
pButton->show();
如果我嘗試改變樣式表:
pButton->setStyleSheet("background-color: rgb(255,255,0);");
然後Qt的拋出了其手中,並且描繪出afwul前瞻性塊狀按鈕。
有一頁標題爲「How to change the background color of QWidget」,但它只是談論這兩種方法。
還有一個頁面「Qt Style Sheets Examples」,這意味着如果你想改變背景顏色,你必須接管繪製按鈕的所有方面,這似乎是矯枉過正。
我需要在Mac,Windows和Ubuntu Linux上運行它,如果我必須手動繪製關於按鈕的所有內容(每個平臺一次),那真的不是一件快樂的事情。
我錯過了一些明顯的東西嗎?
p.s. 「背景顏色」是指按鈕周圍的區域,而不是按鈕正面文字的顏色。
你有沒有解決這個問題? – Alchete
我沒有......看起來如果你使用默認的小部件,Qt使用QStyle「繪製」它們,這很好,因爲那麼你的小部件在所有不同的平臺上都是原生的,但不是很好,因爲定製不再是可能的。你可能能夠創建自己的QStyle派生類,並以某種方式搭載QStyle本身,但是我們決定在UI中完全不同的方向,繞過這個限制。 –