Qt Layout для изменения размера - PullRequest
1 голос
/ 12 июля 2011

Я новичок в разработке Qt, пишу редактор уровней для игры, над которой я работаю, и у меня возникают проблемы с макетами в конструкторе.

Вот что я хочу, чтобы это выгляделокак:

(мне не хватает представителя, чтобы публиковать изображения, вот ссылка :) http://img855.imageshack.us/img855/6474/editori.jpg

Очевидно, что будет больше кнопок и вещей справа, и вещи на самом делепоявляется внутри холста OpenGL.

Итак, у меня есть два конкретных вопроса:

1) Как мне настроить его так, чтобы, если пользователь изменяет размеры окна, приложение изменяет размерыего содержание соответственно?Я могу приблизиться к тому, что хочу, поместив кнопки в вертикальный макет, затем поместив их и OpenGLCanvasin в макет Splitter, но это приводит к тому, что холст будет иметь ширину размера в качестве кнопок, в отличие от кнопок, закрепленных наскажем, самые правые 100 пикселей экрана.

2) Есть ли простой способ прокрутки холста?Размер уровня потенциально может быть намного больше, чем умещается на экране, поэтому, если это так, я хочу добавить горизонтальные и вертикальные полосы прокрутки к холсту.(если уровень слишком большой или пользователь делает окно достаточно маленьким, чтобы оно больше не подходило. В последнем случае полосы прокрутки должны появляться, только если оно на самом деле не подходит).Есть ли простой способ сделать это, или я должен сделать все вручную?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 12 июля 2011
3 голосов
/ 15 июля 2011

Если размер содержимого не изменяется должным образом, это звучит так, как будто вы, возможно, не установили макет верхнего уровня. Кроме того, вы уверены, что хотите использовать макет Splitter? Я не уверен, какую пользу это даст в этом случае, и это позволило бы скрыть кнопки, изменяя размер холста над ними. Может быть, у вас есть причина, чтобы предпочесть это все же. Несмотря на это, в Designer я могу создать что-то похожее на то, что вы показали, с правильным изменением размера:

  • Добавление кнопок, а затем их группировка в вертикальную компоновку.
  • Добавление холста.
  • Затем выберите форму (либо щелкнув правой кнопкой мыши где-нибудь на форме, не занятой другим виджетом, либо щелкнув правой кнопкой мыши на форме в Инспекторе объектов) и выбрав «Макет» -> «Макет по горизонтали» из контекстного меню.

Изменив это немного, вы сможете прокрутить холст:

  • Добавление виджета QScrollArea в форму.
  • Переместить холст в виджет QScrollArea.
  • Как и в случае с формой, щелкните правой кнопкой мыши виджет «Область прокрутки» на форме или в Инспекторе объектов и примените макет, выбрав «Макет» -> «Некоторые параметры макета». Я использовал Вертикальный макет для этого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...