2011-07-12 79 views
1

我是Qt开发新手,正在为正在编写的游戏编写关卡编辑器,并且在设计器中遇到布局问题。用于调整大小的Qt布局

这里就是我想要它看起来像:

(我没有足够的代表,发布图片,这里是一个链接:) http://img855.imageshack.us/img855/6474/editori.jpg

还有的显然将是更多的按钮和东西正确的东西,以及实际在OpenGL画布中显示的东西。

所以我有两个具体的问题:

1)如何设置它,这样如果用户重新大小的窗口,应用适当的重新大小的内容?通过将按钮放入垂直布局,然后将其放入垂直布局,然后将其放置在Splitter布局中,但可以使画布的宽度与按钮的宽度相当,而不是固定到的按钮例如,屏幕的最右侧100个像素。

2)有没有简单的方法来允许滚动画布?该级别的大小可能比屏幕上的大小大得多,所以如果出现这种情况,我想在画布上添加水平和垂直滚动条。 (如果级别太大或者如果用户使窗口足够小以至于不再适合,在后一种情况下,滚动条应该仅在实际不适合时才显示)。有没有简单的方法来做到这一点,或者我必须手动做所有事情?

谢谢!

回答

3

如果内容没有被正确地调整,这听起来好像你可能不会设置一个顶级布局。另外,你确定你想使用Splitter布局吗?我不确定在这种情况下会给你带来什么好处,它可以通过调整画布的大小来隐藏按钮。也许你有理由更喜欢这个。无论如何,在Designer中,我可以创建类似于您所显示的东西,并通过以下方式正确调整大小:

  • 添加按钮,然后将它们分组为垂直布局。
  • 添加画布。
  • 然后选择表单(通过右键单击窗体未被其他窗口部件占用的地方或右键单击对象检查器中的窗体),然后从上下文菜单中选择布局 - >布局水平布局。

通过稍微改变这一点,你应该能够滚动的帆布:

  • 添加QScrollArea控件到窗体。
  • 将画布移动到QScrollArea小部件。
  • 与之前的表单一样,右键单击表单上的滚动区域小部件或者在对象检查器中,然后通过选择布局 - >一些布局选项来应用布局。我为此使用了垂直布局。
+0

工作很好,谢谢! – numegil

+0

无论如何,这是什么意思的顶级布局?你如何设置它? – swdev

+0

基本上你的窗体或小部件是一个GUI元素的树。顶级元素是树的根,换句话说,表单或小部件。如果没有布局应用于该元素,则Qt不知道在调整大小时应如何处理。要设置顶层元素,您应该首先在没有其他布局的情况下右键单击它,或者在Object Inspector中右键单击它。然后从上下文菜单中选择Layout-> WhateverLayoutYouWant。 – foven