【问题标题】:PyQt4 - Smooth window resize transition?PyQt4 - 平滑窗口调整大小转换?
【发布时间】:2011-12-13 07:34:53
【问题描述】:

当用户在我的 PyQt4 驱动的 GUI 的 QMainWindow 中打开特定选项卡时,
窗口需要自动调整大小,以便适合此特定选项卡的内容。

如您所知,使用 Qwidget.resize() 时,窗口(PC 上的默认设置)会立即调整大小。
这在眼睛上并不容易,并且可能会让用户感到惊讶/困惑。

是否可以让窗口平滑过渡到新的窗口大小?
(本质上是动画)

(例如,一个非常可怕的方法是不断调用resize,每次稍微增加窗口大小以躲避过渡)

用户无法调整窗口大小,因此当窗口在不同大小之间扩展和收缩时,我知道它们的确切尺寸。我还知道我的所有用户都运行 Windows 7(因为我的用户是平板电脑程序中的同学)。

有人知道 PyQt4 是否可以做到这一点,以及如何实现?
(Qt Kinetic 听起来与我相关,但事实证明很难搜索到合适的信息)

谢谢! x 100

规格:
- PyQt4
- Python 2.7
- 视窗 7

【问题讨论】:

    标签: python qt windows-7 resize transition


    【解决方案1】:

    QPropertyAnimation 可用于为 QObject 属性设置动画,包括窗口的大小。

    我不确定它是否会在性能方面表现良好,因为正如你所说,它会永久调用 resize(),但看起来这就是你想要的。

    您可以做的是调整窗口大小,但在动画期间以某种方式禁用绘画(即覆盖paint()),以便只有框架平滑调整大小(应该没问题)并且内部不会重绘,直到已达到目标大小。

    【讨论】:

    • 辛苦了!被整个“子小部件”所困扰,但现在解决了。谢谢!
    • 在相关说明中,是否有一种简单的方法可以在动画后禁止用户调整窗口大小? (设置最大和最小几何图形会干扰过渡)
    • @AntiEarth:也许 WindowFlags 或 QWidget::attribute 有一些方法可以禁用窗口大小调整。我确信这是可能的,但不是发自内心地知道。查看 QWidget 的文档。
    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 2011-08-20
    • 2019-04-30
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多