Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vipet от Январь 26, 2007, 22:05



Название: Как сделать, чтобы QBoxLayout масштабировался в client area?
Отправлено: vipet от Январь 26, 2007, 22:05
Qt 4.2.2

Как сделать, чтобы QBoxLayout масштабировался в client area формы? Т.е. увеличиваем размер формы, и QBoxLayout тоже меняет свои размеры. (аналог в Дельфи: Align=alClient)

спасибо

добавлено спустя 2 часа 15 минут:

 ответьте плиз кто-нибудь, вопрос простой ведь


Название: Как сделать, чтобы QBoxLayout масштабировался в client area?
Отправлено: Steven_Orko от Январь 27, 2007, 00:01
Ты хочешь сказать, что он не изменяется???? Это как???
Почему не используешь QVBoxLayout QHBoxLayout?


Название: Как сделать, чтобы QBoxLayout масштабировался в client area?
Отправлено: vipet от Январь 27, 2007, 02:08
Да, именно это я и хочу сказать.

Т.е. я не знаю как установить так, чтобы QBoxLayout растягивался на всю клиентскую область формы.

(Использую QHBoxLayout, а написал QBoxLayout, потому что должно быть общим)

Как-то просто должно делаться, но че-то я не дорубаю.. Функций много всяких, setAlignment, sizePolicy и др. А что из этого сделать - неясно.

добавлено спустя 2 часа:

 1. в функции setupUI() есть строка:

Код:
horizontalLayout->setGeometry(QRect(0, 0, 566, 194));


если я ее убираю, то она все равно возвразается на место, т.к. это все генерится.

2. Если же я редактирую .ui (xml) файл, убирая вот это:
Код:
<property name="geometry" >
     <rect>
      <x>0</x>
      <y>0</y>
      <width>566</width>
      <height>194</height>
     </rect>
    </property>


то при загрузке проекта, все опять возвращается.


Название: Как сделать, чтобы QBoxLayout масштабировался в client area?
Отправлено: Dendy от Январь 27, 2007, 11:28
ВьІ наверное неправильно отредактировали форму. Лейоут не должен висеть на форме отдельно, он должен бьІть к ней прикреплен. Скорее всего ВьІ вьІделили елементьі и щелкнули на кнопке обьединить их в горизонтальньІй/вертикальньІй лейоут (после чего последний можно произвольно таскать по форме, а также включить в другой лейоут). А надо бьІло так: щелкаете на окне формьІ (мимо всех окон), чтобьІ она стала текущей. Потом на кнопку обьединить в горизонтальньІй/вертикальньІй лейоут. Таким образом лейоут прикрепляется к форме и обьединяет все елементьІ на ней.


Название: Как сделать, чтобы QBoxLayout масштабировался в client area?
Отправлено: vipet от Январь 27, 2007, 16:27
Dendy,
Спасибо, заработало!!!

Изначально я делал не так, как Вы предположили, а просто кидал Layout на форму и в него уже кидал контролы. :D