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

我想在tableview中的某一单元格在满足某一个条件后在改变它的文本颜色来提示用户,请问怎么做?兄弟感激不尽。我还是不太懂,比如说,在(0,5)单元格中的条件满足后我需... 我想在tableview中的某一单元格在满足某一个条件后在改变它的文本颜色来提示用户,请问怎么做?兄弟感激不尽。
我还是不太懂,比如说,在(0,5)单元格中的条件满足后我需要把整行单元格的文字都变成红色,应该怎么做呢?
展开
 我来答
lgao622
2015-08-11 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6549
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
  1. QTableView 是用于 view - delegation - model 类型的;要想改变某一单元格文本的颜色,还是用 QTableWidget.

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

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

金毛狮王2007
2010-11-09 · TA获得超过529个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:397万
展开全部
回复:
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();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式