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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использования Designer для масштабирования виджетов при изменении главного окна  (Прочитано 10464 раз)
Cugop
Гость
« : Январь 21, 2013, 04:26 »

1) При помощи шаблона «Проект Qt Widget»-> «GUI приложение Qt» было создано минимальное приложение.
2) Используя Qt Designer кинуто два verticalLayout в один из которых был при помощи Qt Designer помещен textEdit, во второй, используя http://www.prog.org.ru/topic_13567_0.html, программно помещен собственный виджет для рисования рис.1.
3) Если убрать  verticalLayout с textEdit и после использовать в Qt Designer компоновку по вертикали Cntr+L. После компиляции с изменением размера окна программы происходит масштабирование рисунка в виджете. (Рис.2)
4) При возвращении обратно verticalLayout с textEdit как в пункте 2, манипуляция, описанная в пункте 3, не приводит к желаемому результату. textEdit перекрывает виджет для рисования. Если же не использовать  компоновку по вертикали Cntr+L, компоненты остаются на месте и маштабирования не происходит.
5) Вопрос: Подскажите, пожалуйста, возможно ли средствами Qt Designer-а сделать размещение компонент textEdit и виджета для рисования, что бы после компиляции программы масштабировался как textEdit так и виджет для рисования?
« Последнее редактирование: Январь 21, 2013, 04:29 от Cugop » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Январь 21, 2013, 05:15 »

не кидать никаких verticalLayout на виджет, а сразу сделать «компоновку по вертикали»
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
carrygun
Гость
« Ответ #2 : Январь 21, 2013, 05:21 »

Если сделать компоновку по вертикали, то виджеты сразу будут растягиваться пропорционально. Еще можно поиграться со setStretch() у лэйаута.

Для размещения виджета для рисования, можно кинуть на форму в дизайнере просто QWidget и воспользоваться функцией "Преобразовать в...".
Записан
Cugop
Гость
« Ответ #3 : Январь 21, 2013, 15:18 »

kambala:
Если не использовать verticalLayout, а применить сразу  «компоновку по вертикали», виджет для рисования переноситься в левый правый угол рис. 3.
Если же все-таки  кинуть verticalLayout только  для виджета, с кодом
Код:
ui->verticalLayout->addWidget(wgt);
где wgt - соответственно виджет, то виджет  «съедается» рис. 4.

carrygun:
Попробовал setStretch() никаких результатов.
Использовал функцию в Qt Designer "Преобразовать в...", если просто кидаешь только один виджет - рисует, при попытке компоновать с textEdit остается лишь один textEdit (рис.4)

Получается Qt Designer не может компоновать с масштабированием обычные виджеты (QWidget)? Только ручная компоновка.

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Январь 21, 2013, 17:04 »

у меня почему-то описанные мною действия приводят к нужному результату, только надо с растяжением поиграться для нужной высоты своего виджета.

если ты уже скомпоновал в дизайнере, то в коде не нужно ничего компоновать («программно помещен собственный виджет для рисования»).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Cugop
Гость
« Ответ #5 : Январь 21, 2013, 17:43 »

kambala, спасибо, понял как это делается, да нужно было поменять в Qt Designer minimumSize.
carrygun, тоже спасибо, особенно за
Цитировать
Для размещения виджета для рисования, можно кинуть на форму в дизайнере просто QWidget и воспользоваться функцией "Преобразовать в...".
« Последнее редактирование: Январь 21, 2013, 17:56 от Cugop » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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