2015-11-08 161 views
1

我想写一个“无限滚动”列表控件。滚动应该基于计时器自动发生。不会有任何用户交互。例如,该列表包含项目0-100。如果滚动区域达到项目100,则显示的下一个项目应为项目1等等(如滚动文字符号)。无限滚动QListWidget

我希望你得到了我想要的东西;)

我如何在QListWidget的子类中实现这一点?还是最好不要使用QListWidget并写我自己的类来做到这一点?

回答

1

你不需要子类。最简单的实现就是清除并填充QListWidget,无论您填入列表中的任何小部件(可能是您的主窗口)。缺点是它可能在屏幕上显得杂乱无章。

另一种选择是一个QPlainTextEdit;使用setMaximumBlockCount()设置最大行数,然后在每个计时器刻度处调用appendPlainText()(或appendHtml))。当您达到最大行数时,旧线条将消失,因此它在正确的时间再次从0开始,它将看起来像是循环通过条目。

如果它必须是一个清单,尝试与具有可变显示您的输入偏移和环绕代理(QAbstractProxyModel)一而QListView。