如何通过文本编辑使字符串列表一个接一个地出现?

问题描述 投票:0回答:1

我正在使用pyqt5 GUI创建文本小部件,例如文本编辑,纯文本编辑,表小部件...。我有一个像['cat','dog','cow']这样的字符串列表,我要用for循环对其进行迭代,然后将其放在纯文本编辑小部件上。在纯文本编辑上运行GUI程序后,所有内容都一起出现,但我希望它们像先猫然后是狗等一个一个地出现。我该怎么办?

python user-interface pyqt5 qtablewidget
1个回答
0
投票

您可以使用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_())
© www.soinside.com 2019 - 2024. All rights reserved.