Python Timer怎么玩?
Python Timer怎么玩?
1、创建自动保存机制:
# 自动保存
self.timerAutoSave = QTimer()
self.timerAutoSave.timeout.connect(self.TimerAutoSave)
self.timerAutoSave.start(10 * 1000)
2、时间到了,自动更新画布
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(0)
3、实战
rollTimer = QTimer()
timerInterval = 2*1000
self.rollTimer.timeout.connect(self.slotTimerOutImageRoll)
self.rollTimer.setInterval(self.timerInterval)
self.rollTimer.start() # 打开计时器
def slotImageRollSwitch(self, checked):
"""
slotImageRoll 在这里打开图像滚动的timer,一分钟滚动一次,更新所有的图片;
:return:
"""
if checked:
# 这里可以添加一个对话框,用来让用户输入,多长时间跳转一次;
# 后面四个数字的作用依次是 初始值 最小值 最大值 步幅
# self.timerInterval的单位是ms,所以要除以1000
value, ok = QInputDialog.getInt(self, "多长时间更新一次", "设置更新的时间间隔(单位是秒)\n\n请输入整数:", int(self.timerInterval/1000), 2, 3600*2, 2) #最快2秒,最慢2小时
if ok:
# self.timerInterval的单位是ms,所以要乘以1000
self.timerInterval = value * 1000
self.rollTimer.setInterval(self.timerInterval)
self.statusBar().showMessage("The interval of timer was set {}".format(self.timerInterval))
else:
self.statusBar().showMessage("Cancel")
self.rollTimer.start()
self.statusBar().showMessage("Switch on image rolling!")
else:
self.rollTimer.stop()
self.statusBar().showMessage("Switch off image rolling!")
def slotTimerOutImageRoll(self):
"""
更新每一个单元格里边的图片;
:return:
"""
stamp = int(time.time())
ctime = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(stamp))
self.statusBar().showMessage("Image Rolling at {}".format(ctime))
for i in range(6):
for j in range(3, 10):
if j in [3,4,5,6,7,9]:
key = "{}-{}".format(i,j)
iv = self.QMapIV[key]
imagesDir = r'datasets/{}'.format(key)
images = os.listdir(imagesDir)
choosedImage = choice(images)
image = tifffile.imread("datasets/{}/{}".format(key,choosedImage))
iv.setImage(image, autoRange=False)