Python QT4-时间睡眠

Python QT4-时间睡眠,python,pyqt,delay,qtimer,Python,Pyqt,Delay,Qtimer,我有一个简单的python qt4代码,它垂直打印相同的标签。在下一个打印标签之前,如何延迟(time.sleep)1秒 class Ui_Form(object): def setupUi(self, Form): ..... self.pushButton.clicked.connect(self.praxis) self.label_i = 0 self.timer = QTimer(self)

我有一个简单的python qt4代码,它垂直打印相同的标签。在下一个打印标签之前,如何延迟(time.sleep)1秒

class Ui_Form(object): def setupUi(self, Form): ..... self.pushButton.clicked.connect(self.praxis) self.label_i = 0 self.timer = QTimer(self) self.timer.timeout.connect(self.praxis) self.timer.start(1000) def praxis(self): self.lbl1_count = 119 for i in range(10): self.lbl_1 = QtGui.QLabel(Form) self.lbl_1.setGeometry(QtCore.QRect(120, self.lbl1_count, 14, 34)) self.lbl_1.setText(_translate("Form", "Something Text", None)) font = QtGui.QFont() font.setPointSize(16) self.lbl_1.setFont(font) self.lbl_1.setObjectName(_fromUtf8("label")) self.lbl1_count += 35 self.label_i += 1 if self.label_i >= 10: self.timer.stop() 类Ui_表单(对象): def setupUi(自我,表格): ..... self.button.clicked.connect(self.praxis) self.label_i=0 self.timer=QTimer(self) self.timer.timeout.connect(self.praxis) 自动定时器启动(1000) def praxis(自我): self.lbl1\u计数=119 对于范围(10)内的i: self.lbl_1=QtGui.QLabel(表单) self.lbl_1.setGeometry(QtCore.QRect(120,self.lbl1_计数,14,34)) self.lbl_1.setText(_translate(“Form”,“Something Text”,None)) font=QtGui.QFont() font.setPointSize(16) self.lbl_1.setFont(字体) self.lbl_1.setObjectName(_fromUtf8(“标签”)) self.lbl1\u计数+=35 self.label_i+=1 如果self.label_i>=10: self.timer.stop()
您可以使用
QTimer
在x个时间量后触发函数调用。这比使用
sleep
要好,因为它不会冻结GUI,并且您可以在更新发生时看到它们

def __init__(self):
    ...
    self.label_i = 0
    self.timer = QTimer(self)
    self.timer.timeout.connect(self.update_label)
    self.timer.start(1000)

def update_label(self):
    # Your label updating code above
    ...
    self.label_i += 1
    if self.label_i >= 10:
        self.timer.stop()

这将创建一个
QTimer
,每秒(1000毫秒)调用更新函数。在函数中,它检查函数是否被调用了10次,然后停止计时器。

我编辑了代码以更好地理解结构。我附加了QTimer,但不起作用。对不起,我的意思是要删除更新函数中的
for
循环。Qtimer正在将其替换为一种异步for loop,我发布了应用程序的所有代码,希望能够理解。我不能删除for循环,因为我需要它来迭代行编辑、标签等。QTimer现在正在进行迭代。它调用您的函数10次,每次调用之间有1秒的间隔