Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: tumanovalex от Июль 24, 2010, 22:26



Название: Расположение и параметры элементов на форме
Отправлено: tumanovalex от Июль 24, 2010, 22:26
На основном окне размещены элементы управления. Подскажите, пожалуйста, как сделать так:
1. Чтобы при максимизации окна кнопки ОК и Отмена были расположены в правом нижнем углу, а все остальные элементы - в левом верхнем углу с сохранением расстояний между ними, заданными в дизайнере. Что-то я промаялся с разными Layout, ничего не получилось.
2. Можно было изменять ширину колонок в TableWidget, размещенной на форме. Что-то я не смог настроить.


Название: Re: Расположение и параметры элементов на форме
Отправлено: SimpleSunny от Июль 24, 2010, 22:38
Необходимо использровать Layout'ы.
Вот тема с похожим запросом. http://www.prog.org.ru/topic_14334_0.html

Чтобы кнопки всегда были внизу справа необходимо использовать Spacer. horizontal, чтобы отодвинуть из вправо и vertical, чтобы вниз.


Название: Re: Расположение и параметры элементов на форме
Отправлено: SABROG от Июль 25, 2010, 08:43
с сохранением расстояний между ними, заданными в дизайнере.
Интересное условие, которое по логике просто запрещает окну менять свои размеры, либо это будет выглядеть как квадратный оазис контролов где-то в центре максимизированного виджета и конечно условия о том, чтобы часть этих виджетов была где-то слева вверху и справа внизу соблюдаться не будут.


Название: Re: Расположение и параметры элементов на форме
Отправлено: tumanovalex от Июль 25, 2010, 10:11
Со вторым условием я погорячился, а вот с первым не совсем понятно. Информацию по дизайнеру я почитал, но что-то не очень понял. Я сделал компоновку кнопок ОК и Отмена, они выделись красным. Затем я слева от красного выделения расположил горизонтальный спейсер, а сверху - вертикальный спейсер. При запуске получил сообщение "Этот файл содержит верхнеуровневые разделители. Они не были сохранены в форме. Возможно, вы забыли создать компоновщик?" Может быть нужно скомпоновать и расположенные выше кнопок контролы (комбобокс, радиокнопки, фложок и Table)? Что такое верхнеуровневые разделители и где нужно создавать компоновщик? Помогите, пожалуйста, понять идеологию создания правильного взаимного положения элементов управления.


Название: Re: Расположение и параметры элементов на форме
Отправлено: SimpleSunny от Июль 25, 2010, 12:07
Почитайте Жасмин Бланшет. Глава 1-2. Там все подробно расписывается, вплоть до того, что нажимать в дизайнере.


Название: Re: Расположение и параметры элементов на форме
Отправлено: lit-uriy от Июль 25, 2010, 12:52
>>где нужно создавать компоновщик?
выдели своё окошко, и на панели инструментов нажми одну из кнопок компоновки.

П.С. к сожалению, в дизайнере, не помечается визуально компоновщик, установленный на конкретный виджет (для его содержимого). Визуально выделяются либо:
* самостоятельные компоновщики, не назначенные виджету (твой случай с кнопками)
*  компоновщики вложенные непосредственно в другой компоновщик


Название: Re: Расположение и параметры элементов на форме
Отправлено: tumanovalex от Июль 25, 2010, 20:00
Почитал Бланшет, опять не разобрался. Поместил горизонтальный спейсер рядом с кнопками ОК и Отмена, выделил с помощью CTRL (в Бланшет рекомендовалось Shift)  спейсер и кнопки, нажал Скомпоновать по горизонтали. Спейсер и кнопки были обведены красной линией. Однако при максимизации основного окна кнопки в правый нижний угол не встали. Видимо, что-то я делаю неправильно. Посмотрите, пожалуйста, мой проект.


Название: Re: Расположение и параметры элементов на форме
Отправлено: SimpleSunny от Июль 25, 2010, 20:14
Вам все свои виджеты, необходимо скомпоновать, чтобы все коректно растягивалось.
Поэтому.
1. Нажимаем на "Вид датчика" и выбираем компоновку (горизонтальная \ вертикальная). Это задаст как компоновать виджеты внутри GroupBox.
2. Далее необходимо скомпоновать остальные виджеты. К примеру выбрать "тест" и "датчик ВЧ". скомпоновать по вертикали. И скомпоновать по горизонтали "Вид датчика" и получившуюся компоновку по вертикали (тест...)
3. Как писал выше lit-uriy задать компоновщик для всей формы. Нажать на свободное место формы и выбрать компоновка по вертикали.


Название: Re: Расположение и параметры элементов на форме
Отправлено: tumanovalex от Июль 25, 2010, 22:23
Попробовал все сделать, как Вы рекомендовали, все равно кнопки не размещаются в правом нижнем углу.


Название: Re: Расположение и параметры элементов на форме
Отправлено: SimpleSunny от Июль 26, 2010, 08:40
Посмотрите на этот вариант, может понравится.


Название: Re: Расположение и параметры элементов на форме
Отправлено: tumanovalex от Июль 26, 2010, 12:03
Спасибо, все получилось. Создал новый проект и попробовал сделать все заново. Как оказалось, просто нужно правильно создать компоновщики по горизонтали и вертикали, задать их параметры, в нужном месте и в нужном количестве расположить спейсеры, затем сделать компоновку по сетке (в моем случае). Спасибо за советы и обсуждения, они помогли мне выйти из тупика. Очень понравился QTCreator, очень все удобно и разумно.