2010-10-21 35 views
1

中繪製不同顏色的行在我的應用程序中,當我點擊行時,我有默認的藍色行標記爲 ,但在這個藍色的顏色旁邊,我通過不同顏色繪製行函數不依賴於用戶點擊的信號,在排序我需要一個函數,我會通過行索引,它會繪製在X顏色的行。我怎樣才能在QTreeWidget(Qt)

回答

0

使用項目角色創建委託函數。在每個樹項目中設置項目角色。訪問樹委託的繪畫事件中的項目並相應地繪製該行。

+0

哇謝謝,你能指點我的示例代碼? – user63898 2010-10-21 09:15:04

+0

請注意,代表用於Q * View類,通常不用於Q * Widget類(儘管您可能可以使其工作)。 – 2010-10-21 19:37:38

0

對於QStandardItem,您可以將背景角色設置爲所需的顏色。

void customSelect(const QModelIndex &index) 
{ 
    if(!index.isValid()) 
    return; 


    QStandardItemModel* myModel = dynamic_cast<QStandardItemModel*> (index.model()); 
    if(!myModel) 
    return; 

    int row = index.row(); 
    for(int col = 0 , colCount = myModel.columnCount(); col < colCount ; ++i) 
    { 
    QStandardItem *item = myModel.item(row, col); 
    item->setData(Qt::blue, Qt::BackgroundColorRole); 
    } 

} 
+0

此方法的問題是如果定義了項目懸停/選定的顏色,它將完全覆蓋背景角色。另外,問題是使用模型引用'QTreeWidget'而不是'QTreeView'。 – mrg95 2017-03-26 22:08:47