如何在QTreeWidget(Qt)中绘制不同颜色的行

时间:2010-10-21 05:04:51

标签: c++ qt qtreeview

我在我的应用程序中,当我点击行时,我标记了默认的蓝色行 但是除了这种蓝色之外我还可以通过不依赖于用户点击信号的功能来绘制不同颜色的行,在排序中我需要一个函数,我将传递行索引,它将以x颜色绘制行。

2 个答案:

答案 0 :(得分:0)

使用项角色创建委托函数。在每个树项中设置项角色。访问树委托的绘制事件中的项目并相应地绘制行。

答案 1 :(得分: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);
  }

}