бесконечная прокрутка QListWidget

Я хочу написать виджет списка с бесконечной прокруткой. Прокрутка должна происходить автоматически на основе таймера. Никакого взаимодействия с пользователем не будет. Например, список содержит элементы 0-100. Если область прокрутки достигает элемента 100, следующим отображаемым элементом должен быть элемент 1 и т. д. (например, текстовый знак прокрутки).

Надеюсь, ты получишь то, что я хочу ;)

Как я могу реализовать это в подклассе QListWidget? Или лучше не использовать QListWidget и написать для этого свой собственный класс?


person strnmn    schedule 08.11.2015    source источник


Ответы (1)


Вам не нужно создавать подклассы. Простейшая реализация - просто очистить и заполнить QListWidget из любого виджета, которым вы заполняете список (может быть вашим главным окном). Недостатком является то, что это, вероятно, выглядит грязно на экране.

Другой вариант — QPlainTextEdit; установите максимальное количество строк с помощью setMaximumBlockCount(), затем вызовите appendPlainText() (или appendHtml)) при каждом такте таймера. Старые строки исчезнут, когда вы достигнете максимального количества строк, поэтому, если вы снова начнете с 0 в нужное время, это будет выглядеть так, как будто он циклически перебирает записи.

Если это должен быть список, попробуйте QListView с прокси-сервером (QAbstractProxyModel), который отображает ваши записи с переменным смещением и обтеканием.

person JvO    schedule 08.11.2015