Всем привет! Имею на форме QTableWidget с элементами на нем, типа QTableWidgetItem. Необходимо в определенный момент перекрасить фон строк (по определенному признаку). Имею вот такой цикл:
int rows = ui->tableWidget->rowCount();
for ( int i = 0; i < rows; i++ )
{
if ( ui->tableWidget->item(i, 1)->text() == str ) {
for ( int col = 0; col < ui->tableWidget->columnCount(); col++ ) {
ui->tableWidget->item(i, col)->setBackground( QColor(255, 228, 196) );
//ui->tableWidget->item(i, col)->setData( Qt::UserRole, QColor(255, 228, 196) );
}
}
}
Код выполняется крайне медленно. Применение делегата ситуацию не меняет. Если заменить QTableWidgetItem на QLabel скорость выполнения нормальная. Подскажите почему так? Пробовать разбираться в QTableView и QAbstractTableModel (я начинающий разработчик Qt)? или все-таки есть вариант решения? спасибо.
P.S. Закомментировал и все теперь работает быстро:
ui->tableWidget->verticalHeader()->setSectionResizeMode( QHeaderView::ResizeToContents );