我在 Qt 中使用 QTableView,我有一个表格,其中每个单元格都有不同的文本颜色。我有选择行为选择整行。但是当我选择任何行时,所选行的文本颜色会变为白色。我不想在选择行时更改文本颜色。我希望在选择任何行时显示原始颜色。
我尝试使用样式表,但它也改变了整行文本的颜色。
我在这里发布示例代码
QTableView * pQTableView = new QTableView();
QStandardItemModel *model = new QStandardItemModel(5,3);
pQTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
pQTableView->setModel(model);
for(int row = 0;row < 5;row++)
for(int column = 0; column < 3; column++)
{
QModelIndex index1= model->index(row,column);
QVariant value("Swaminarayan");
model->setData(index1, value,Qt::DisplayRole );
}
QModelIndex index1= model->index(0,0);
QVariant Obj(Qt::green);
model->setData(index1,Obj,Qt::TextColorRole );
index1= model->index(0,1);
QVariant Obj1(Qt::red);
model->setData(index1, Obj1,Qt::TextColorRole );
pQTableView->show();
在这里您可以看到第一个单元格的颜色为绿色,第二个单元格的颜色为红色,一旦我们选择第一行颜色更改为白色。