效果如下:
直接上源码:
import sys
from PyQt6.QtCore import QTimer
from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
class TextDisplayExample(QWidget):
def __init__(self):
super().__init__()
self.text = "这是一个逐字显示的示例文本"
self.index = 0
self.label = QLabel(self)
self.label.setStyleSheet("color: black; font-size: 20px;")
self.timer = QTimer(self)
self.timer.timeout.connect(self.showNextCharacter)
self.initUI()
def initUI(self):
self.setWindowTitle('逐字显示文本示例')
self.setGeometry(100, 100, 400, 200)
vbox = QVBoxLayout()
vbox.addWidget(self.label)
self.setLayout(vbox)
self.timer.start(50) # 启动定时器,每隔50ms显示一个字
def showNextCharacter(self):
if self.index <= len(self.text):
self.label.setText(self.text[:self.index])
self.index += 1
else:
self.timer.stop() # 停止定时器
def main():
app = QApplication(sys.argv)
ex = TextDisplayExample()
ex.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()