用于调整大小的Qt布局

时间:2011-07-12 08:20:47

标签: qt layout

我是Qt开发的新手,正在为我正在开发的游戏编写一个关卡编辑器,而我在设计器中遇到Layouts问题。

这就是我想要的样子:

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

右边显然会有更多的按钮和东西,实际上会出现在OpenGL画布中。

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

1)如何设置它以便在用户重新调整窗口大小时,应用程序会适当调整其内容的大小?我可以通过将按钮放入垂直布局,然后将它和OpenGLCanvasin放到Splitter布局中来接近我想要的东西,但这导致画布的大小宽度为按钮,而不是固定的按钮比方说,屏幕最右边的100个像素。

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

谢谢!

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

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

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

稍微修改一下,你应该能够滚动画布:

  • 将QScrollArea小部件添加到表单。
  • 将画布移动到QScrollArea小部件。
  • 与表单一样,右键单击表单或Object Inspector中的Scroll Area小部件,然后通过选择Layout-> Some Layout Option来应用布局。我使用了垂直布局。