Russian Qt Forum

Qt => Общие вопросы => Тема начата: Cugop от Январь 21, 2013, 04:26



Название: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: 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 (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 так и виджет для рисования?


Название: Re: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: kambala от Январь 21, 2013, 05:15
не кидать никаких verticalLayout на виджет, а сразу сделать «компоновку по вертикали»


Название: Re: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: carrygun от Январь 21, 2013, 05:21
Если сделать компоновку по вертикали, то виджеты сразу будут растягиваться пропорционально. Еще можно поиграться со setStretch() у лэйаута.

Для размещения виджета для рисования, можно кинуть на форму в дизайнере просто QWidget и воспользоваться функцией "Преобразовать в...".


Название: Re: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: Cugop от Январь 21, 2013, 15:18
kambala:
Если не использовать verticalLayout, а применить сразу  «компоновку по вертикали», виджет для рисования переноситься в левый правый угол рис. 3.
Если же все-таки  кинуть verticalLayout только  для виджета, с кодом
Код:
ui->verticalLayout->addWidget(wgt);
где wgt - соответственно виджет, то виджет  «съедается» рис. 4.

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

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



Название: Re: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: kambala от Январь 21, 2013, 17:04
у меня почему-то описанные мною действия приводят к нужному результату, только надо с растяжением поиграться для нужной высоты своего виджета.

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


Название: Re: Использования Designer для масштабирования виджетов при изменении главного окна
Отправлено: Cugop от Январь 21, 2013, 17:43
kambala, спасибо, понял как это делается, да нужно было поменять в Qt Designer minimumSize.
carrygun, тоже спасибо, особенно за
Цитировать
Для размещения виджета для рисования, можно кинуть на форму в дизайнере просто QWidget и воспользоваться функцией "Преобразовать в...".