我想将颜色设置为使用
完成的树形图中的替换行setAlternatingRowColors(1);
QPalette p = palette();
p.setColor( QPalette::AlternateBase, QColor(226, 237, 253) );
setPalette(p);
但是,每次单击后,颜色设置为已设置行下方的行,或者颜色设置在行之间切换。我希望将它设置为特定行的常量。首先表示如果第二行是设置颜色,则单击后颜色设置将转到第3行。我希望它只在第二排
答案 0 :(得分:1)
我建议使用模型执行此操作并返回模型中背景的适当颜色。当data(const QModelIndex& index, int role)
被称为视图的模型对象(或您的情况为QTreeWidget
)时,role
的其中一个值将为Qt::BackgroundRole
。像下面这样的东西会做你想要的:
QVariant SomeModel::data(const QModelIndex& index, int role)
{
switch(role)
{
// other role handling code here. below is the except for handling BackgroundRole
case Qt::BackgroundRole:
if (0 == index.row() % 2)
return QColor(226, 237, 253);
else
return Qt::white;
break;
}
}