首页 文章

Python QT4 - 时间睡眠

提问于
浏览
-2

我有一个简单的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()

1 回答

  • 1

    您可以使用 QTimer 在x个时间后触发函数调用 . 它比使用 sleep 更好,因为它会在发生更新时看到更新 .

    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次,然后停止计时器 .

相关问题