1

在我的 Qt 项目中,在我的对话框中,我有表视图,我正在使用代理模型和表模型从 SQL 设置其数据库。现在我想改变我的表格视图列的颜色[只有列[3、4、5]。在搜索了互联网之后,我终于成功地改变了颜色,但是整个表格视图的颜色。我正在使用以下代码:

ui->tableView->setStyleSheet("background-color: yellow");

我应该写什么来使黄色,只有一些列?

我认为我应该将“背景颜色”更改为其他内容,但我不太擅长 CSS,也不知道要搜索什么。

4

2 回答 2

1

您应该根据单元格着色,而不是QtableWidgetor的函数QtableModel

void MyParentWidget::highlightCell(const QModelIndex &cellIndex)
{
 for(int i=0; i<cellIndex.model()->columnCount(); i++)
 {
  for(int j=0; j<cellIndex.model()->rowCount(); j++)
  {
   if(i == cellIndex.column() && j == cellIndex.row())
   {
    ((QStandardItemModel*)cellIndex.model())->item(cellIndex.row(),     i)->setData(QBrush(Qt::yellow),
Qt::BackgroundRole);
   }
   else
   {
    ((QStandardItemModel*)cellIndex.model())->item(cellIndex.row(),  i)->setData(QBrush(Qt::white),
Qt::BackgroundRole);
   }
  }
 }
}
于 2013-10-05T10:48:55.647 回答
0

样式表没有办法,您需要以编程方式完成!查看此示例以了解行的背景颜色:

http://qt-project.org/forums/viewthread/10832

于 2013-10-05T10:48:52.663 回答