gpt4 book ai didi

qt - 有没有一种简单的方法来更改 QTableWidget 中行的背景颜色?

转载 作者:行者123 更新时间:2023-12-04 17:57:57 29 4
gpt4 key购买 nike

我知道您可以遍历 QTableWidgetItems 并更改它们的颜色,但是,如果我使用了 setCellWidget 并且我有不是 QTableWidgetItems 的单元格怎么办。我找不到简单的 setRowColor 方法。似乎应该有,因为有交替行颜色的方法等等。有没有一种简单的方法可以在不对表的委托(delegate)进行子类化的情况下做到这一点?

反问:
我只想更改行颜色,我真的需要一个全新的类(class)吗?

最佳答案

我相信使用 QTableWidget 设置行颜色的最简单方法是遍历小部件项目并使用 setData方法来指定背景颜色,看下面的例子

for (int column=0; column<4; column++)
{
for (int row = 0; row<5; row++)
{
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
newItem->setData(Qt::BackgroundRole, (row%2)>0 ? Qt::red : Qt::blue);
ui->tableWidget->setItem(row, column, newItem);
}
}

如果您想让它更简单,请考虑使用 QTableView小部件,而是实现您的模型(我想最简单的方法是子类 QStandardItemModel )并在那里保持行颜色。实现一个 setRowColor 方法或/和一个槽来为你的数据行指定颜色。

希望这会有所帮助,问候

关于qt - 有没有一种简单的方法来更改 QTableWidget 中行的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044545/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com