Russian Qt Forum

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



Название: Вопрос по лэйауту в лэйауте
Отправлено: sindbad07 от Июнь 17, 2010, 19:26
Как сделать, чтобы виджет (просто QWidget) с QGridLayot'ом, содержащий несколько контролов, при добавленнии на виджет с QVBoxLayout'ом, не растягивался по всей его высоте, а просто располагался в нём как очередная строка (секция)?
Мне просто надо сделать составной виджет, используя GridLayout, проблема в том, что он растягивается и все элементы набора разносятся по всему доступному пространству, как это победить?


Название: Re: Вопрос по лэйауту в лэйауте
Отправлено: Kolobok от Июнь 17, 2010, 19:36
Добавляй после него QSpacerItem.

Код:
void QBoxLayout::addStretch ( int stretch = 0 )


Название: Re: Вопрос по лэйауту в лэйауте
Отправлено: sindbad07 от Июнь 17, 2010, 22:46
Добавляй после него QSpacerItem.

Код:
void QBoxLayout::addStretch ( int stretch = 0 )

Спасибо, функция layout->addStretch() помгла сгруппировать элементы управления в секции, только секция появляется почему-то в VBoxLayout снизу, а не сверху, как сделать наоборот?


Название: Re: Вопрос по лэйауту в лэйауте
Отправлено: ilyagoo от Июнь 17, 2010, 23:05
добавляй спэйсер снизу, а не сверху


Название: Re: Вопрос по лэйауту в лэйауте
Отправлено: sindbad07 от Июнь 17, 2010, 23:24
добавляй спэйсер снизу, а не сверху
А я пока его не добавлял, а что его после каждой новой вставки (addWidget()) добавлять надо или нет?
________________________________________________________________________________________________________
Вобщем решил свой вопрос при помощи QFormLayout, теперь все круто, по порядку снизу вверх. Спасибо за внимание.


Название: Re: Вопрос по лэйауту в лэйауте
Отправлено: Kolobok от Июнь 18, 2010, 00:30
снизу вверх

Необычный дизайн.