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)
posted @ 2022-10-01 11:35  bH1pJ  阅读(63)  评论(0编辑  收藏  举报