windows某些场景下调整窗口大小或者移动后就会导致里面的内容重绘(速度慢,卡顿,闪烁),其实在以前windows在低配置设备为了减少这种频繁绘制的情况,默认会开启这种效果,不过目前设备越来越好了就关闭了该功能。具体是在控制面板中->调整Windows的外观和性能->去掉勾选 拖动时显示窗口内容。

PyQt中某些情况下需要取消原来的信号连接,此时需要使用disconnect方法,但是在逻辑不严谨的情况下可能会导致多次调用disconnect方法而导致报错,当然可以通过try except来包裹代码。这里通过 isSignalConnected 来判断信号是否连接。

之前看到了QStackedWidget做切换动画,让界面不那么生硬,于是参考了 http://qt.shoutwiki.com/wiki/Extending_QStackedWidget_for_sliding_page_animations_in_Qt 做了一个QStackedWidget的切换动画,然后利用QStackedWidget结合多个QLabel显示图片来做一个轮播效果。

其实在写之前也在网上找了很多例子,参看过后发现大多例子都是利用到了paintEvent去绘制,这样其实还是比较麻烦,个人觉得更好的方式是使用QPropertyAnimation属性动画修改控件中QLabel图片控件的pos位置属性就可以达到移动效果了。