我有一個繼承QStandardItem的類,並且將元素放在QTreeWidget中。該課程接收來自外部的通知,並且我想根據發生的情況更改該項目的背景顏色。Qt:使用樣式表QStandardItem的背景顏色
如果我不使用樣式表,它工作得很好,像這樣:
void myClass::onExternalEvent()
{
setBackground(0, QColor(255,0,0)));
}
然而,當我把一個樣式表上QTreeWidget,這沒有任何效果:樣式表似乎覆蓋打電話給setBackground()
。
所以,我想:
void myClass::onExternalEvent()
{
this->setStyleSheet("background-color: red");
}
但是這可能是完全錯誤的,它改變了我的屏幕上的一些其他元素的顏色,不知道爲什麼。
有沒有人有一個想法,我可以像setBackgroundColor一樣改變背景顏色,但仍然能夠在我的QTreeWidget上使用樣式表?
感謝您的回覆,我沒有得到與setAutoFillBackground任何不同的結果。該文件說,如果有一個樣式表,它將被關閉: http://doc.qt.nokia.com/4.6/qwidget.html#autoFillBackground-prop 事情是,我不想改變完整QTreeWidget的背景,僅適用於小部件內部的特定項目(一行)。我的課是一個QTreeWidgetItem,我想只改變這個項目的顏色。 – Johan 2010-04-22 11:02:33