Qt 中 QTableView 中如何设置某一单元格文本的颜色值,希望能贴出代码。

2024-11-29 08:36:32
推荐回答(2个)
回答1:

  1. QTableView 是用于 view - delegation - model 类型的;要想改变某一单元格文本的颜色,还是用 QTableWidget.

  2. 假设界面上 QTableWidget name 是 tableWidget;

    ui->tableWidget->item(0, 0)->setForeground(Qt::red);

回答2:

回复:
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();
}
}