PyQt4 - 平滑窗口调整大小过渡?
当用户在我的PyQt4图形界面中的QMainWindow里打开一个特定的标签页时,
这个窗口需要自动调整大小,以便这个标签页的内容能够适应。
你知道,当使用Qwidget.resize()时,窗口(在电脑上默认情况下)会立刻调整大小。
这样看起来不太舒服,可能会让用户感到惊讶或困惑。
有没有办法让窗口平滑地过渡到新的大小呢?
(其实就是一种动画效果)
比如说,有一种很糟糕的方法是不断调用resize,每次稍微增加一点窗口的大小,以此来模拟过渡。
窗口的大小用户是无法调整的,所以当窗口在不同大小之间扩展和收缩时,我知道它们的确切尺寸。而且我也知道我的所有用户都在使用Windows 7(因为我的用户都是在一个平板项目中的同学)。
有没有人知道在PyQt4中是否可以做到这一点,以及怎么实现?
(Qt Kinetic听起来跟这个有关,但我发现很难找到合适的信息)
谢谢!x 100
规格:
- PyQt4
- Python 2.7
- Windows 7
1 个回答
2
有一个叫做 QPropertyAnimation 的东西,可以用来给 QObject 的属性加动画效果,包括你窗口的大小。
我不太确定这样做在性能上是否会有问题,因为它会不停地调用 resize(),就像你说的那样,但看起来这正是你想要的效果。
你可以试试在调整窗口大小的时候,暂时禁用绘制(也就是重写 paint()
方法),这样就可以让窗口的边框平滑地调整大小(这样应该没问题),而内部的内容在达到目标大小之前不会被重新绘制。