无法设置QTableWidgetItem的背景颜色?

问题描述 投票:0回答:2

我正在尝试设置 QTableWidgetItem 的背景颜色,但它有效吗? 当我尝试更改文本颜色时,它工作没有任何问题..

代码:

void myWin::myFunction(int count, QVector<QColor> sampleInfoColor, QVector<QStringList> info)
{
    ...
    sampleTable->setRowCount(count + 1);
    QFont nameFont;
    nameFont.setBold(true);
    ...
    for(int i=0; i<count; i++)
    {
        ...
        QTableWidgetItem *name = new QTableWidgetItem("Text");
        name->setFont(nameFont);
        sampleTable->setItem(i+1, 0, name);
        name->setBackground(sampleInfoColor[i]);
        ...
    }
}

我也尝试过这个,但它也不起作用..:

sampleTable.item(nRow, nCol)->setBackground(QColor);

我做错了什么?

qt qt5 qtablewidget qtablewidgetitem qcolor
2个回答
1
投票

你能尝试一下吗:

name->setBackground( QBrush( sampleInfoColor[i] ) );

0
投票

你可以使用cellWidget的方式,把QLabel放入QTableWidget,然后设置QLabel的颜色。

ui_->tableWidget_tp->setItem(row, col, new QTableWidgetItem);
ui_->tableWidget_tp->setCellWidget(row, col++, label);
label->setStyleSheet("background-color: rgb(0, 229, 0);");

或者继承QTableWidgetItem,重新实现QPainter,不过这种相对来说比较麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.