1

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

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

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

4

1 回答 1

1

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

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

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

于 2013-04-19T09:04:42.447 回答