2009-07-21 157 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