У меня есть QTableWidget, который я заполняю следующим образом:
// Clear the table
this->topPatchesTableWidget->setRowCount(0);
this->topPatchesTableWidget->setRowCount(numberToDisplay);
for(unsigned int pairId = 0; pairId < numberToDisplay; ++pairId)
{
// Display patch match scores
QTableWidgetItem* myLabel = new QTableWidgetItem;
myLabel->setData(Qt::DisplayRole, myValues[pairId]);
this->tableWidget->setItem(pairId, 0, myLabel);
... fill other columns ...
}
(у меня есть некоторые другие элементы пользовательского интерфейса для установки свойств, которые вычисляют значения в myValues).Если я изменю свойства, заново вычислю и заново создаю таблицу, все будет работать как положено.Если я сортирую таблицу, нажимая на один из заголовков, она сортируется правильно.ОДНАКО, если в этот момент (после сортировки) я снова нажму кнопку, чтобы пересчитать значения и пересоздать таблицу, таблица будет очень разбита.То есть многие из ячеек пусты, а ячеи, которые не являются пустыми, по-видимому, не в каком-либо конкретном порядке.
При добавлении ручного вызова к
this->tableWidget->sortByColumn(0, Qt::AscendingOrder);
вВ начале моей функции CreateTable все работает, как и ожидалось, но, конечно, вновь созданная таблица сортируется по столбцу 0, а не по столбцу, который был выбран для последней сортировки.
Кто-нибудь знает, почему все будетпойти так не так без вызова sortByColumn?(Я попытался сделать простой пример, но я не могу воспроизвести проблему в демонстрационной программе).
Спасибо,
Дэвид