2009-07-21 158 views
4

我有一個QDockWidget,裏面有一個方形的小部件。我希望``QDockWidget可以調整大小,但始終保持方形,而默認情況下它可以不成比例地拉伸。Qt:調整窗口大小的方形限制

需要設置什麼樣的尺寸策略,尺寸提示等組合才能做到這一點?

回答

2

resizeEvent()被調用時,小工具已經是有它的新大小。從它調用resize()可能會導致閃爍。

您可以嘗試重新實現QWidget::heightForWidth(int);只要QDockWindow停靠,這可能會工作,Qt的佈局管理員可以控制它。但是IIRC,至少在X11上,heightForWidth()不適用於頂層窗口小部件(窗口)。

1

你必須覆蓋resizeEvent。

你要比較的寬度和高度在這種方法中,

,如果它們不相等,將其設置爲您希望相關的寬度或高度相等。

+1

我希望有一個比這更簡單的方法。如果我這樣做,我將不得不弄清用戶的意圖(是用戶試圖擴大或縮小寬度或高度或兩者?),否則我會覆蓋用戶試圖做的......無論如何感謝。 – erjiang 2009-07-21 19:10:25

+0

也許你可以在調整大小時選擇較大的一個,但這可能會導致縮小問題。 (並且vise verca選擇越來越小的價值)。所以你應該如何實現一個機制。 當用鼠標拉伸時,它將成爲小部件另一角的距離。 你應該看看通常應用程序的功能,並從中獲得啓發... – ufukgun 2009-07-22 06:42:00