我目前正在尝试在QAnimation框架的帮助下用Qt构建一个幻灯片查看器。我在改变照片大小的同时移动它有困难,因为在幻灯片中改变照片的大小,而它正在移动似乎会影响它的轨迹。在
具体地说,我正在尝试设置一组照片的动画,使它们在窗口的水平中心线上从右到左连续移动,同时改变大小。基本上,这是一种“鱼眼”效应,当照片向窗口中心移动时,照片会变大,然后随着移动而减小到原来的大小。在
在任何给定的时间,窗口将只显示3张照片(加上1张从左侧窗口退出的照片)。假设这3张照片,从左到右排列,标记为P1、P2、P3。考虑一张照片,最右边的照片P3。当P3从窗口右侧向中心移动时,其大小应逐渐增大,并在窗口中心达到最大大小。当它继续向左移动并最终退出窗口时,它的大小应该会减小到原来的值。在
如果我只是移动照片而不调整它们的大小,我当前的实现是有效的。当同时移动和缩放图像时,照片不再在窗口中心水平移动。照片的大小似乎缩放正确。在
我当前的实现依赖于QPropertyAnimation类来执行动画。我用Python和Qt的pyStand绑定编写程序,但是C++或PyQT代码中的解决方案很好。我将把它们翻译成Python和PySide。在
相关代码如下:def animate(self, items):
'''@params: items The photos to animate'''
logging.debug('Creating %d animation objects', len(items))
self.animationGroup.clear()
for i, item in enumerat