我想写一个“无限滚动”列表小部件。滚动应该根据计时器自动发生。不会有任何用户交互。例如,该列表包含项目0-100。如果滚动区域到达项目100,则显示的下一个项目应该是项目1,依此类推(类似于滚动文本符号)。
我希望你得到我想要的;)
我如何在QListWidget的子类中实现它?或者最好不要使用QListWidget,而是编写我自己的类来做这件事?
发布于 2015-11-08 17:40:29
你不需要子类化。最简单的实现是清除并填充列表(可能是您的主窗口)中的任何小部件的QListWidget。缺点是它可能在屏幕上看起来很乱。
另一个选项是QPlainTextEdit;使用setMaximumBlockCount()设置最大行数,然后在每个计时器节拍时调用appendPlainText() (或appendHtml))。当您达到最大行数时,旧的行将消失,因此如果您在正确的时间重新从0开始,它将看起来像是在循环访问条目。
如果必须是一个列表,可以尝试使用带有代理(QAbstractProxyModel)的QListView,该代理使用变量偏移量显示条目并进行环绕。
https://stackoverflow.com/questions/33590503
复制相似问题