如何在不阻塞循环的情况下定期更改 QLabel Geometry

How to change QLabel Geometry periodically without blocking loops

我想扩展这个 尤其是 blink 函数来改变标签的几何形状 setGeometry,特别是标签的起始坐标。

所以根据持续时间,标签不仅会改变 颜色,还会改变位置(几何) 定期。

你能告诉我这是否可行(不阻塞循环),我该怎么做?提前致谢。

感谢@musicamante 的建议,这里是解决方案:

self.pos_anim   = QPropertyAnimation(self, b"geometry")

def alarm_alert(self, pos1, pos2, duration=3000):
        """
        Function: alarm_alert, to alarm the motion of the Animated QLabel.
        ---
        Parameters:
        @param: pos1, QRect, geometry of first position.
        @param: pos2, QRect, geometry of second position.
        @param:duration, int, motion duration in ms.
        ---
        @return: None
        """
        self.pos_anim.stop()
        self.pos_anim.setDuration(duration)
        self.pos_anim.setStartValue(pos2)
        self.color_anim.setKeyValueAt(0.2, pos2)
        self.color_anim.setKeyValueAt(0.6, pos1)
        self.color_anim.setKeyValueAt(0.2, pos2)
        self.pos_anim.setEndValue(pos1)
        self.pos_anim.setLoopCount(-1)
        self.pos_anim.start()