Чтобы ограничить использованную память, я решил ограничить количество строк в таблице. Когда добавляется новая строка, я проверяю, превышает ли количество строк определенное значение, и если да, то я удаляю первую строку. Проблема в том, что после удаления первого ряда все другие ряды сдвинуты. Это не удобно для пользователя. Если пользователь проверяет некоторые события в середине таблицы, а затем вдруг ряды начнут подниматься и строки, которые пользователь заинтересован в исчезновении, это было бы очень неудовлетворительным. < /P>
Я нашел Scrollto < /code> Метод, но я не мог найти способ получить первую отображаемую строку таблицы.
Это ничего не делает (кроме удаления строки): < /p>
Код: Выделить всё
QModelIndex index = ui->tableWidget->indexAt(QPoint(40, 70));
ui->tableWidget->removeRow(0);
ui->tableWidget->scrollTo(index, QAbstractItemView::EnsureVisible);
< /code>
Это, по крайней мере, прокручивает таблицу, но работает только при выборе строки и после удаления первой строки выбранная строка может быть скрыта за горизонтальным заголовком: < /p>
QModelIndex index = ui->tableWidget->currentIndex();
ui->tableWidget->removeRow(0);
ui->tableWidget->scrollTo(index, QAbstractItemView::EnsureVisible);
Подробнее здесь: https://stackoverflow.com/questions/793 ... is-removed
Мобильная версия