如何在更改背景颜色后刷新QTableWidget单元格

时间:2014-01-12 11:00:57

标签: qt qt5.1

我有一个由QTableWidget创建的矩阵,我有多个线程可以改变单元格的颜色,我希望在设置颜色后立即看到颜色发生变化。 我现在拥有的是,只有在完成所有细胞着色后,我才能看到整个细胞颜色改变为一次。 我在着色之间有一个很好的延迟,所以并不是线程如此快速地填充单元格。

每个线程调用该函数 fillInCell(x,y,val,myThreadIdx);

void ResultMatrix::fillInCell(int i, int j, int val, int color )
{

    QTableWidgetItem* item = new QTableWidgetItem();
    item->setText(QString::number(val));
    colorCell(color,item);
    ui->matrixResult->setItem(i,j,item);
}

和colorCell是彩色单元格的功能

void ResultMatrix::colorCell(int threadNum, QTableWidgetItem* item)
{

    switch (threadNum)
    {
    case 0:{
            QColor cellColor(255, 0, 0 );
            item->setBackgroundColor(cellColor);
            return;}
    case 1:{
.....

1 个答案:

答案 0 :(得分:0)

这个方法对我有用:

QAbstractItemView::reset();

QTableWidgetQAbstractItemView

之后继承