
PyQt5 中实现控件淡入淡出效果(控件的透明度渐变效果)
最近写一个程序用到 PyQt5,其中需要让一个 label 标签实现透明度的渐变效果。上网搜了很久,都只有窗口的淡入淡出,而没有控件的淡入淡出的实现方法。自己研究后写了一个方法实现这个效果。对于控件淡入淡出,我原本计划使用透明度属性动画 QPropertyAnimation。试验发现,透明度渐变动画不适用于控件。最后我搞了个定时器 QTimer,终于解决了这个问题。下面是代码:

https://docs.python.org/zh-cn/3.8/tutorial/controlflow.html#default-argument-values

列表是可变对象,这默认值只会初始化一次。第一次调用时列表为空,然后你给他放入了1,第二次调用时这个列表就是[1]了,再放入一个,它就变成[1, 1]。由于两个ls指的都是同一个内存地址,所以两次调用返回的ls指向的都是这个列表,你用append方法给这个列表添加值,并没有重新指向新的内存地址(使用ls=ls+[1]的话会改变,这样两个ls指的就是不同的实例了),所以你打印两次都是同一个列表,即[1, 1]