如何在QTreeWidget中为特定行设置背景颜色

时间:2013-04-19 08:37:06

标签: c++ qt qt4

我想在QTableWidget中设置特定行的颜色,就像setAlternatingRowColors那样,只有我应该能够指定哪些行和我想要的颜色。我尝试了以下代码

QBrush b (QColor(224,224,224));
item->setBackground( 0 , b );
item->setBackground( 1 , b );
item->setBackground( 2 , b );

但此代码仅使用颜色填充项目列,而不是整行。

1 个答案:

答案 0 :(得分:1)

由于Qt在不同的QTableWidgetItems中处理QTableWidget的所有字段,因此根本没有办法像您在此处所建议的那样影响表中的完整行。由于您似乎只使用标准字段而没有自定义“特殊”,您可以迭代QTableWidgetItems行并逐个设置它们的背景。

更符合您需求的时尚方式是使用Qt的模型/ View Framework通过数据后端使用QBackgroundRole获取背景颜色。一个很好的起点是:http://qt-project.org/doc/qt-4.8/model-view-programming.html

掌握MVC范式背后的概念可能更难,但一旦掌握,它就非常灵活。