如何在Qt 的tableview中根据某一单元格的数据来设置该行的字体颜色或背景色。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Qt 的tableview中根据某一单元格的数据来设置该行的字体颜色或背景色。相关的知识,希望对你有一定的参考价值。
比如,在(0,6)的单元格中的数据是1时,那么我需要把第0行所有的单元格背景改变为红色. 我之前试过重写data方法,通过当前传入的index的行号和列号及他的值来判断,可以设置(0,6)行的背景色,但问题是通过判断后怎么设置(0,6)之前的单元格的背景色呢???求救?
朋友 我用的是QTableView 没有item 函数,还有其他的办法吗?
for (int j = 0;j < tw2->columnCount();j++)
QTableWidgetItem *item = tw2->item(i,j);
if (item)
item->setBackground("#FF3EFF");
Qt 中 QTableView 中如何设置某一单元格文本的颜色值,希望能贴出代码。
我想在tableview中的某一单元格在满足某一个条件后在改变它的文本颜色来提示用户,请问怎么做?兄弟感激不尽。
我还是不太懂,比如说,在(0,5)单元格中的条件满足后我需要把整行单元格的文字都变成红色,应该怎么做呢?
QTableView 是用于 view - delegation - model 类型的;要想改变某一单元格文本的颜色,还是用 QTableWidget.
假设界面上 QTableWidget name 是 tableWidget;
ui->tableWidget->item(0, 0)->setForeground(Qt::red);
Qt::BackgroundRole改成Qt::ForegroundRole,就是文字颜色.(0,5)单元格就是index.column()==5&&index.row()==0
subclass你的Model,重载data、setData函数,以data()为例:
QVariant MyTestModel::data(const QModelIndex &index, int role) const
switch(role)
case Qt::DisplayRole:
return QVariant(QString(tr("%1")).arg((index.column() + 1) * 1000 + index.row() + 1));
case Qt::BackgroundRole:
switch(index.column() % 3)
case 0:
return QVariant(QColor(Qt::red));
case 1:
return QVariant(QColor(Qt::green));
case 2:
return QVariant(QColor(Qt::blue));
default://only to disable warning
return QVariant(QColor(Qt::white));
break;
default:
return QVariant();
本回答被提问者采纳
以上是关于如何在Qt 的tableview中根据某一单元格的数据来设置该行的字体颜色或背景色。的主要内容,如果未能解决你的问题,请参考以下文章
根据内容动态调整tableview单元格的高度 - iOS Swift
tableview 单元格我们如何快速调整单元格的大小以及图像和标签
TableView 控制器中无法扩展 TableView 单元格的高度