Russian Qt Forum
Сентябрь 30, 2024, 16:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Расположение и параметры элементов на форме  (Прочитано 8486 раз)
tumanovalex
Гость
« : Июль 24, 2010, 22:26 »

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

Необходимо использровать Layout'ы.
Вот тема с похожим запросом. http://www.prog.org.ru/topic_14334_0.html

Чтобы кнопки всегда были внизу справа необходимо использовать Spacer. horizontal, чтобы отодвинуть из вправо и vertical, чтобы вниз.
Записан
SABROG
Гость
« Ответ #2 : Июль 25, 2010, 08:43 »

с сохранением расстояний между ними, заданными в дизайнере.
Интересное условие, которое по логике просто запрещает окну менять свои размеры, либо это будет выглядеть как квадратный оазис контролов где-то в центре максимизированного виджета и конечно условия о том, чтобы часть этих виджетов была где-то слева вверху и справа внизу соблюдаться не будут.
Записан
tumanovalex
Гость
« Ответ #3 : Июль 25, 2010, 10:11 »

Со вторым условием я погорячился, а вот с первым не совсем понятно. Информацию по дизайнеру я почитал, но что-то не очень понял. Я сделал компоновку кнопок ОК и Отмена, они выделись красным. Затем я слева от красного выделения расположил горизонтальный спейсер, а сверху - вертикальный спейсер. При запуске получил сообщение "Этот файл содержит верхнеуровневые разделители. Они не были сохранены в форме. Возможно, вы забыли создать компоновщик?" Может быть нужно скомпоновать и расположенные выше кнопок контролы (комбобокс, радиокнопки, фложок и Table)? Что такое верхнеуровневые разделители и где нужно создавать компоновщик? Помогите, пожалуйста, понять идеологию создания правильного взаимного положения элементов управления.
Записан
SimpleSunny
Гость
« Ответ #4 : Июль 25, 2010, 12:07 »

Почитайте Жасмин Бланшет. Глава 1-2. Там все подробно расписывается, вплоть до того, что нажимать в дизайнере.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Июль 25, 2010, 12:52 »

>>где нужно создавать компоновщик?
выдели своё окошко, и на панели инструментов нажми одну из кнопок компоновки.

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

Юра.
tumanovalex
Гость
« Ответ #6 : Июль 25, 2010, 20:00 »

Почитал Бланшет, опять не разобрался. Поместил горизонтальный спейсер рядом с кнопками ОК и Отмена, выделил с помощью CTRL (в Бланшет рекомендовалось Shift)  спейсер и кнопки, нажал Скомпоновать по горизонтали. Спейсер и кнопки были обведены красной линией. Однако при максимизации основного окна кнопки в правый нижний угол не встали. Видимо, что-то я делаю неправильно. Посмотрите, пожалуйста, мой проект.
Записан
SimpleSunny
Гость
« Ответ #7 : Июль 25, 2010, 20:14 »

Вам все свои виджеты, необходимо скомпоновать, чтобы все коректно растягивалось.
Поэтому.
1. Нажимаем на "Вид датчика" и выбираем компоновку (горизонтальная \ вертикальная). Это задаст как компоновать виджеты внутри GroupBox.
2. Далее необходимо скомпоновать остальные виджеты. К примеру выбрать "тест" и "датчик ВЧ". скомпоновать по вертикали. И скомпоновать по горизонтали "Вид датчика" и получившуюся компоновку по вертикали (тест...)
3. Как писал выше lit-uriy задать компоновщик для всей формы. Нажать на свободное место формы и выбрать компоновка по вертикали.
Записан
tumanovalex
Гость
« Ответ #8 : Июль 25, 2010, 22:23 »

Попробовал все сделать, как Вы рекомендовали, все равно кнопки не размещаются в правом нижнем углу.
Записан
SimpleSunny
Гость
« Ответ #9 : Июль 26, 2010, 08:40 »

Посмотрите на этот вариант, может понравится.
Записан
tumanovalex
Гость
« Ответ #10 : Июль 26, 2010, 12:03 »

Спасибо, все получилось. Создал новый проект и попробовал сделать все заново. Как оказалось, просто нужно правильно создать компоновщики по горизонтали и вертикали, задать их параметры, в нужном месте и в нужном количестве расположить спейсеры, затем сделать компоновку по сетке (в моем случае). Спасибо за советы и обсуждения, они помогли мне выйти из тупика. Очень понравился QTCreator, очень все удобно и разумно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 23.