Tim*_*son 2 c++ user-interface qt qtablewidget
我想突出显示表格中第一列中具有相同值但在任何其他单元格中具有不同值的所有单元格。因此,例如,如果我的表中有两条记录:
test, 25, 15, 45
test, 25, 5, 45
Run Code Online (Sandbox Code Playgroud)
我想突出显示值 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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
当您应该使用QTableWidget::item时,看起来您正在使用QTableWidget::itemAt。
简单来说,itemAt就是在像素坐标(ax,ay)处找到QTableWidgetItem,同时item返回指定行和列处的QTableWidgetItem。文本总是“测试”,因为您总是在表格中询问非常接近 (0, 0) 的小部件,它位于左上角。
| 归档时间: |
|
| 查看次数: |
12806 次 |
| 最近记录: |