繁体   English   中英

如何从qtablewidget中的项目获取文本?

[英]How do I get text from an item in a qtablewidget?

我想突出显示表中所有在第一列中具有相同值但在其他任何单元中具有不同值的单元格。 因此,例如,如果我的表中有两个记录:

test, 25, 15, 45
test, 25, 5, 45    

我想突出显示值15和5。

我尝试了以下代码,但是无论我访问哪个项目,从项目调用中获得的文本始终为“测试”。

// Highlight differences in the data
for( int row=0; row < ui->table_Data->rowCount(); row++ )
{
    qDebug() << "going through rows";
    for( int remaining_rows=row+1; remaining_rows < ui->table_Data->rowCount(); remaining_rows++)
    {
        qDebug() << "going through remaining rows";
        for( int column=0; column<ui->table_Data->columnCount(); column++ )
        {
            qDebug() << "going through columns";
            qDebug() << row << ":" << remaining_rows << column;
            qDebug() << ui->table_Data->itemAt(row,column)->text();
            qDebug() << ui->table_Data->itemAt(remaining_rows,column)->text();
            if( ui->table_Data->itemAt(row,column)->text().compare(ui->table_Data->itemAt(remaining_rows,column)->text()) != 0)
            {
                 qDebug() << "data does not match";
                 ui->table_Data->item(row,column)->setBackground(Qt::yellow);
                 ui->table_Data->item(remaining_rows,column)->setBackground(Qt::yellow);
            }
        }
    }
}

当您应该使用QTableWidget :: item时,您似乎正在使用QTableWidget :: itemAt

简而言之, itemAt在像素坐标(ax,ay)处找到QTableWidgetItem,而item在指定的行和列处返回QTableWidgetItem。 文本始终是“ test”,因为您总是向表询问非常接近(0,0)(位于左上角)的小部件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM