【问题标题】:infinite scrolling QListWidget无限滚动 QListWidget
【发布时间】:2015-11-08 03:49:01
【问题描述】:
我想编写一个“无限滚动”列表小部件。滚动应该基于计时器自动发生。不会有任何用户交互。例如,该列表包含项目 0-100。如果滚动区域到达第 100 项,则显示的下一个项目应该是第 1 项,依此类推(如滚动文本符号)。
希望你能得到我想要的;)
如何在 QListWidget 的子类中实现这一点?或者最好不要使用 QListWidget 并编写我自己的类来执行此操作?
【问题讨论】:
标签:
c++
qt
scroll
qlistwidget
【解决方案1】:
您不需要子类化。最简单的实现是简单地从您正在填充列表的任何小部件(可能是您的主窗口)中清除和填充 QListWidget。缺点是它在屏幕上可能看起来很乱。
另一个选项是 QPlainTextEdit;使用 setMaximumBlockCount() 设置最大行数,然后在每个计时器滴答时调用 appendPlainText()(或 appendHtml))。当您达到最大行数时,旧行将消失,因此您在正确的时间再次从 0 开始,它看起来就像是在循环遍历条目。
如果它必须是一个列表,请尝试使用代理 (QAbstractProxyModel) 的 QListView,它会显示带有可变偏移量并环绕的条目。