Как отключить прокрутку в QtableWidget, когда строка удаляется?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как отключить прокрутку в QtableWidget, когда строка удаляется?

Сообщение Anonymous »

Я пытаюсь использовать qtablewidget для отображения журналов. Для пользователя это таблица только для чтения, где можно выбрать только полные строки. Каждая строка является записью журнала. Новые записи добавляются в виде рядов внизу. Таблица имеет горизонтальный заголовок, но нет вертикального заголовка.
Чтобы ограничить использованную память, я решил ограничить количество строк в таблице. Когда добавляется новая строка, я проверяю, превышает ли количество строк определенное значение, и если да, то я удаляю первую строку. Проблема в том, что после удаления первого ряда все другие ряды сдвинуты. Это не удобно для пользователя. Если пользователь проверяет некоторые события в середине таблицы, а затем вдруг ряды начнут подниматься и строки, которые пользователь заинтересован в исчезновении, это было бы очень неудовлетворительным. < /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);
Обновление: я забыл упомянуть, что пользователь имеет возможность фильтровать записи журнала, и это реализуется с использованием Hiderow . Я нашел одно решение, но оно не работает, когда таблица имеет скрытые ряды.

Подробнее здесь: https://stackoverflow.com/questions/793 ... is-removed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»