MarqueeLabel

MarqueeLabel 是一个实现了超长文本的自动滚动显示,类似 HTML 里的 <marquee> 标签的行为。
29210314_qh5M.png
转载:http://www.adobex.com/ios/source/details/00000813.htm

转载于:https://my.oschina.net/u/868244/blog/106238

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用 PyQt 实现文件跑马灯程序的简单示例代码: ```python import sys from PyQt5.QtCore import Qt, QTimer from PyQt5.QtWidgets import QApplication, QLabel, QWidget class MarqueeLabel(QLabel): def __init__(self, text): super().__init__(text) self.setAlignment(Qt.AlignHCenter) self.timer = QTimer(self) self.timer.timeout.connect(self.scroll) self.timer.start(100) def scroll(self): self.setText(self.text()[1:] + self.text()[0]) class MarqueeWidget(QWidget): def __init__(self, filename): super().__init__() self.file = open(filename, 'r') self.label = MarqueeLabel(self.file.readline().strip()) self.layout = QVBoxLayout(self) self.layout.addWidget(self.label) self.setLayout(self.layout) self.timer = QTimer(self) self.timer.timeout.connect(self.updateText) self.timer.start(5000) def updateText(self): self.label.setText(self.file.readline().strip()) if not self.label.text(): self.file.seek(0) self.label.setText(self.file.readline().strip()) if __name__ == '__main__': app = QApplication(sys.argv) widget = MarqueeWidget('filename.txt') widget.show() sys.exit(app.exec_()) ``` 这个程序实现了一个简单的文件跑马灯效果。它首先定义了一个 MarqueeLabel 类,继承自 QLabel,用于实现文本的滚动显示。MarqueeLabel 中包含一个 QTimer 对象,用于定时滚动文本。scroll() 方法实现了文本的滚动效果。 MarqueeWidget 类继承自 QWidget,用于实现整个窗口的布局和控制。它包含一个 MarqueeLabel 对象,用于显示滚动的文本。在 __init__() 方法中,它打开指定的文件,并读取第一行文本,将其设置为 MarqueeLabel 的文本内容。然后,它使用 QVBoxLayout 将 MarqueeLabel 添加到窗口布局中。同时,它还定义了一个 QTimer 对象,用于定时更新文本内容。updateText() 方法实现了文本内容的更新。 最后,主程序中创建了一个 QApplication 对象和一个 MarqueeWidget 对象,并将其显示出来。程序运行时,它会从指定的文件中读取文本内容,并在窗口中滚动显示。每隔一段时间,它会更新文本内容。如果读取到文件末尾,它会将文件指针移到文件开头,重新读取文件内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值