我有一个QDockWidget
,里面有一个方形的小部件。我希望``QDockWidget可以调整大小,但始终保持方形,而默认情况下它可以不成比例地拉伸。Qt:调整窗口大小的方形限制
需要设置什么样的尺寸策略,尺寸提示等组合才能做到这一点?
我有一个QDockWidget
,里面有一个方形的小部件。我希望``QDockWidget可以调整大小,但始终保持方形,而默认情况下它可以不成比例地拉伸。Qt:调整窗口大小的方形限制
需要设置什么样的尺寸策略,尺寸提示等组合才能做到这一点?
当resizeEvent()
被调用时,小工具已经是有它的新大小。从它调用resize()
可能会导致闪烁。
您可以尝试重新实现QWidget::heightForWidth(int)
;只要QDockWindow
停靠,这可能会工作,Qt的布局管理员可以控制它。但是IIRC,至少在X11上,heightForWidth()
不适用于顶层窗口小部件(窗口)。
你必须覆盖resizeEvent。
你要比较的宽度和高度在这种方法中,
,如果它们不相等,将其设置为您希望相关的宽度或高度相等。
我希望有一个比这更简单的方法。如果我这样做,我将不得不弄清用户的意图(是用户试图扩大或缩小宽度或高度或两者?),否则我会覆盖用户试图做的......无论如何感谢。 – erjiang 2009-07-21 19:10:25
也许你可以在调整大小时选择较大的一个,但这可能会导致缩小问题。 (并且vise verca选择越来越小的价值)。所以你应该如何实现一个机制。 当用鼠标拉伸时,它将成为小部件另一角的距离。 你应该看看通常应用程序的功能,并从中获得启发... – ufukgun 2009-07-22 06:42:00