Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Xonix от Февраль 16, 2009, 22:54



Название: Автопрокрутка к посл. строке в QListWidget и QTableView
Отправлено: Xonix от Февраль 16, 2009, 22:54
Здравствуйте. Пишу на C++ в qt 4.3.4 под Linux.
Как реализовать автопрокрутку в таких виджетах: QListWidget и QTableView?

->setAutoScroll(); ->scrollTo() не помогают. Нужно чтобы всегда было видно последнюю строчку (как в инсталляторах).


Название: Re: Автопрокрутка к посл. строке в QListWidget и QTableView
Отправлено: igor_bogomolov от Февраль 17, 2009, 10:17
Цитировать
void QAbstractItemView::scrollToBottom ()   [slot]

Scrolls the view to the bottom.

This function was introduced in Qt 4.1.

See also scrollTo() and scrollToTop().

Цитировать
void QAbstractItemModel::rowsInserted ( const QModelIndex & parent, int start, int end )   [signal]

This signal is emitted after rows have been inserted into the model. The new items are those between start and end inclusive, under the given parent item.

Например так:
Код
C++ (Qt)
connect(tableView->model(), SIGNAL(rowsInserted(const QModelIndex &, int, int)), tableView, SLOT(scrollToBottom()));


Название: Re: Автопрокрутка к посл. строке в QListWidget и QTableView
Отправлено: eugene.n от Апрель 05, 2017, 14:24
Сделал QListView (c QAbstractItemModel) для ведения лога, который часто обновляется.
При довольно частой вставке элементов в модель (раз в 100мс.), соответственно, обновляется QListView. Все работает шустро, но если при каждой вставке прокручивать скроллбар вниз (scrollToBottom()), то виджет начинает тормозить.
Спасло setUniformItemSizes(), но это не мой случай, т.к. сообщения по высоте у меня разные.

Есть еще варианты оптимизировать QListView?