我只想让QDialog中的某些元素闪烁(改变背景颜色)。用PyQt闪烁窗口小部件
现在最好我想能够使用已经存在的东西并封装闪烁状态,即用css3闪烁或可能用QPropertyAnimation
?
因为我没有找到这个选项我试过不太最佳解决方案的任何好的信息:从对话框__init__
摘录:
self.timer = QTimer()
self.timer.timeout.connect(self.update_blinking)
self.timer.start(250)
self.last_blinked = None
和
def update_blinking(self):
self.frame.setStyleSheet(
self.STYLE_BLINK_ON if self.blink else self.STYLE_BLINK_OFF)
self.blink = not self.blink
其中STYLE_BLINK_ON
和STYLE_BLINK_OFF
是一些CSS指定背景颜色。 这一工程,但
- 我觉得超级难看,感觉就像代码90年代
- 作为频繁样式更新中断按钮,点击它是不可用的。
2的解释:假设应该闪烁的小部件是一个帧。 单击框架内的按钮时,如果在释放鼠标按钮之前发生框架的样式更新,则不会发出clicked
信号。
封装事物并且不需要我手动启动计时器的完全不同的解决方案当然是首选。 但是,如果有人至少想出了解决点2的解决方案,我将不胜感激。
这些选项看起来好多了!我知道我的问题并不在我的问题中,但我希望它,如果答案也提供了一种方法将动画应用于现有的Widget,使其可以打开/关闭 – IARI