暂停后如何更新标签?

时间:2019-12-04 13:31:15

标签: python pyqt5

我正在用PyQt5编写一个小应用程序,用户需要选择是否在给定的句子中使用文章“ the”。 一切工作正常,但我想在原始位置稍稍停顿两次更改标签,但我不知道该怎么做。当用户选择了我想显示的答案是否正确时,请暂停一秒钟,然后再给他下一个句子。

我尝试使用timer.sleep()-但它不起作用。 同样QTimer.singleShot()也不起作用。 此行在check_true()函数中,并且已注释

这是我的代码。

from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout, \
    QPushButton, QHBoxLayout
from PyQt5.QtCore import QTimer
from controller import ArticlesController


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.aController = ArticlesController()
        self.initUI()

    def initUI(self):
        self.setFixedSize(200, 200)

        self.layout_v = QVBoxLayout()
        self.layout_h = QHBoxLayout()
        self.lbl_task = QLabel(self.aController.get_task().capitalize())
        self.layout_v.addWidget(self.lbl_task)
        self.lbl_task.setAlignment(QtCore.Qt.AlignCenter)


        lbl_result = QLabel('')
        self.btn_the = QPushButton("The")
        self.btn_the.clicked.connect(self.check_true)
        self.btn_empty = QPushButton("___")
        self.btn_empty.clicked.connect(self.check_false)
        self.btn_finish = QPushButton('Finish')
        self.btn_finish.clicked.connect(self.result)

        self.layout_h.addWidget(self.btn_the)
        self.layout_h.addWidget(self.btn_empty)

        self.layout_v.addLayout(self.layout_h)
        self.layout_v.addWidget(self.btn_finish)
        self.setLayout(self.layout_v)
        self.show()

    def check_true(self):
        res = self.aController.check_true()
        self.lbl_task.setText(res[0])
        # QTimer.singleShot(500, self.lbl_task.setText(res[1]))
        self.lbl_task.setText(res[1])

    def check_false(self):
        res = self.aController.check_false()

        self.lbl_task.setText(res[0])
        self.lbl_task.setText(res[1])

    def result(self):
        res = self.aController.result()
        self.lbl_task.setText(res)


if __name__ == '__main__':
    app = QApplication([])
    win = Window()
    app.exec_()

任何建议,我将不胜感激。 预先感谢。

P.S。我需要在这里使用线程来解决我的问题吗?

0 个答案:

没有答案