2011-12-13 66 views
0

當用戶在我的PyQt4驅動GUI的QMainWindow中打開一個特定的選項卡時,窗口需要自動調整大小,以便該特定選項卡的內容適合。如你所知,當使用Qwidget.resize()時,窗口(默認在PC上)會立即調整大小。
這是不容易的眼睛,可能會驚訝/混淆用戶。PyQt4 - 平滑窗口調整大小過渡?

是否可以讓窗口平滑過渡到新的窗口大小?
(實質上的動畫)

(例如,一個很可怕的方法是連續地調用調整大小,每次稍微增加窗口大小,以躲避到過渡)

窗口大小是不可調對用戶來說,所以當窗戶從不同尺寸縮小到不同尺寸時,我知道它們的確切尺寸。我也知道我的所有用戶都運行Windows 7(因爲我的用戶是平板電腦程序中的同學)。

有沒有人知道這是可能的與PyQt4,以及如何實現它?
(Qt Kinetic聽起來與我有關,但證明難以搜索相應的信息)

謝謝! ×100

規格:
- PyQt4的
- Python 2.7版
- Windows 7的

回答

2

QPropertyAnimation可以用來製作動畫的QObject屬性,包括你的窗口的大小。

我不確定它是否能很好地運行性能,因爲它會像你說的那樣永遠調用resize(),但它看起來就是你想要的。

你可能會做的是調整窗口的大小,但不知何故在該動畫期間禁用繪畫(即覆蓋paint()),以便只有框架順利調整大小(應該沒問題),並且內部不會重繪,直到目標大小已經達到。

+0

工作過!整個'孩子部件'被困住了,但現在解決了。 謝謝! –

+0

在相關說明中,是否有一種簡單的方法可以在動畫之後禁用用戶調整大小的窗口? (設置最大和最小Geometrys干擾轉換) –

+0

@AntiEarth:也許WindowFlags或QWidget ::屬性有一些方法來禁用窗口大小調整。我確信這是可能的,但是從心裏不知道。查看QWidget的文檔。 – Macke