在我的 Qt 项目中,在我的对话框中,我有表视图,我正在使用代理模型和表模型从 SQL 设置其数据库。现在我想改变我的表格视图列的颜色[只有列[3、4、5]。在搜索了互联网之后,我终于成功地改变了颜色,但是整个表格视图的颜色。我正在使用以下代码:
ui->tableView->setStyleSheet("background-color: yellow");
我应该写什么来使黄色,只有一些列?
我认为我应该将“背景颜色”更改为其他内容,但我不太擅长 CSS,也不知道要搜索什么。
在我的 Qt 项目中,在我的对话框中,我有表视图,我正在使用代理模型和表模型从 SQL 设置其数据库。现在我想改变我的表格视图列的颜色[只有列[3、4、5]。在搜索了互联网之后,我终于成功地改变了颜色,但是整个表格视图的颜色。我正在使用以下代码:
ui->tableView->setStyleSheet("background-color: yellow");
我应该写什么来使黄色,只有一些列?
我认为我应该将“背景颜色”更改为其他内容,但我不太擅长 CSS,也不知道要搜索什么。
您应该根据单元格着色,而不是QtableWidget
or的函数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);
}
}
}
}
样式表没有办法,您需要以编程方式完成!查看此示例以了解行的背景颜色: