2013-12-20 76 views
5

當在QTableView中選中某個單元格時,其中的圖標會顯示藍色突出顯示,如何控制此突出顯示的顏色或將其禁用?當選中單元格時,更改QTableView中圖標的顏色突出顯示

我試着設置QPalette :: Highlight,但沒有奏效。

編輯:

好了,所以我不知道如何改變背景顏色和文字顏色和顏色的亮點,而不是一個圖標。如果我返回一個圖標作爲單元格的裝飾,當單元格被選中時,它會顯示淡藍色的高亮。我如何刪除它?

+0

圖標的背景是否透明? –

回答

0

這是完全不可能改變與Qt的標準樣式此行爲。你需要實現你自己的特定風格才能解決這個問題。

3

您可以使用樣式表來定義元素的顏色。 QTableView中選定項目的名稱是selection-background-color。所以,改變這個元素的顏色,你會選擇你喜歡的背景顏色。

#include <QtWidgets/QApplication> 
#include <QtWidgets/QTableView> 
#include <QStandardItemModel> 

int main(int argc, char* argv[]) { 
    QApplication app(argc, argv); 

    QTableView *table = new QTableView(); 
    QStandardItemModel *model = new QStandardItemModel(2,2); 

    table->setModel(model); 
    table->setStyleSheet("selection-background-color: red"); 

    table->show(); 

    return app.exec(); 
} 

看看它的外觀在圖片:

enter image description here

+0

是的,但這對圖標沒有任何影響。至少我沒有做到這一點。你能做到這一點嗎? – 0xbaadf00d

+0

當你說「icon」時,你的意思是「表頭」? –

+0

不,您可以通過返回圖像作爲單元格的裝飾項目來設置圖標。每個單元格都可以擁有自己的圖標。 – 0xbaadf00d

相關問題