我有一个简单的pythonqt 4代码,垂直输出相同的标签。在下一个打印标签之前,我如何延迟(时间,睡眠)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()
发布于 2018-08-02 15:05:48
你可以使用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
在这个函数中,它检查函数是否被调用了10次,然后停止计时器。
https://stackoverflow.com/questions/-100005893
复制相似问题