我有一个由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);
}
和颜色单元格是给细胞着色的功能
void ResultMatrix::colorCell(int threadNum, QTableWidgetItem* item)
{
switch (threadNum)
{
case 0:{
QColor cellColor(255, 0, 0 );
item->setBackgroundColor(cellColor);
return;}
case 1:{
.....
该方法对我有用:
QAbstractItemView::reset();
QTableWidget 继承在 QAbstractItemView 之后