我正在使用pyqt5 GUI创建文本小部件,例如文本编辑,纯文本编辑,表小部件...。我有一个像['cat','dog','cow']
这样的字符串列表,我要用for循环对其进行迭代,然后将其放在纯文本编辑小部件上。在纯文本编辑上运行GUI程序后,所有内容都一起出现,但我希望它们像先猫然后是狗等一个一个地出现。我该怎么办?
您可以使用QTimer设置延迟,并在每次超时时调用setText
。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Template(QWidget):
def __init__(self):
super().__init__()
self.words = ['cat', 'dog', 'cow']
self.count = 0
self.text_box = QPlainTextEdit(self)
self.timer = QTimer()
self.timer.setInterval(2000)
self.timer.timeout.connect(self.add_word)
self.timer.start()
def add_word(self):
try:
self.text_box.setPlainText(f'{self.text_box.toPlainText()}{self.words[self.count]}\n')
except IndexError:
self.timer.stop()
self.count += 1
if __name__ == '__main__':
app = QApplication(sys.argv)
gui = Template()
gui.show()
sys.exit(app.exec_())