我正在用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。我需要在这里使用线程来解决我的问题吗?