Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[Qt] Выравнивание компонентов на форме

1
24 мая 2010 года
kot_
7.3K / / 20.01.2000
Мне необходимо, что бы на форме располагался QListWidget, выровненный по левому краю и чтото типа QStackedLayout - на остальной клиенской части. У Бланшет и у Шлее - все описано великолепно и красивые картинки - но у меня так почему то не получается. :)
Т.е. я использую например, QHBoxLayot в качестве базового (по идее - это то что мне нужно) - но он, компоненты положенные в него почему-то не растягивает по всей форме - если она развернута на весь экран - то все сиротливо висит в левом верхнем углу. В чем может быть причина?
11
24 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
а главному виджету Layout какой задан?
если правильно понял задачу, то в хмл-е вот так выглядит:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>527</width>
    <height>554</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QTreeView" name="treeView"/>
      </item>
      <item>
       <widget class="QListView" name="listView"/>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>527</width>
     <height>19</height>
    </rect>
   </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>
1
24 мая 2010 года
kot_
7.3K / / 20.01.2000
Хм. Ну вроде все так же - но оно нифига не растягивает:
Код:
- <widget class="QWidget" name="verticalLayoutWidget">
- <property name="geometry">
- <rect>
  <x>10</x>
  <y>10</y>
  <width>481</width>
  <height>341</height>
  </rect>
  </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QListView" name="lwMain">
- <property name="resizeMode">
  <enum>QListView::Adjust</enum>
  </property>
- <property name="modelColumn">
  <number>0</number>
  </property>
  </widget>
  </item>
- <item>
- <widget class="QStackedWidget" name="stackedWidget">
- <widget class="QWidget" name="page">
- <widget class="QWidget" name="gridLayoutWidget_2">
- <property name="geometry">
- <rect>
  <x>10</x>
  <y>30</y>
  <width>201</width>
  <height>271</height>
  </rect>
  </property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
  <widget class="QTableView" name="tbMain" />
  </item>
  </layout>
  </widget>
  </widget>
  <widget class="QWidget" name="page_2" />
  </widget>
  </item>
  </layout>
  </item>
  </layout>
  </widget>
  </widget>
1
24 мая 2010 года
kot_
7.3K / / 20.01.2000
или я не понимаю смысла менеджеров выравнивания?
11
24 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
 
Код:
<widget class="QWidget" name="centralWidget">
   <layout class="QVBoxLayout" name="verticalLayout">
2-я строка ключевая, т.е. самому первому виджету надо назначить свойство
layout, у тебя его походу нет как свойства, а есть как дополнительный виджет.
Т.е. в гуевом редакторе форм надо правой кнопкой клацнуть и выбрать layout самого виджета.
1
24 мая 2010 года
kot_
7.3K / / 20.01.2000
Вобщем-то что то типа такого.
Надо было в самом визуальном редакторе кинуть на форму этот самый менеджер, а затем нажать на кнопочку - вертикальное выравнивание. Я понадеялся на то, что у меня это прописано в коде (но видимо толи прописано было неверно, толи еще что) - теперь все работает как надо. Спасибо за внимание.
1
24 мая 2010 года
kot_
7.3K / / 20.01.2000
Я это честно говоря случайно обнаружил, когда от злости стукнул по тачпаду :)
1
25 мая 2010 года
kot_
7.3K / / 20.01.2000
Вообще надо сказать - какая то молдаванская система - необходимость прицельно попадать компонентом в гриды, достаточно сильно доставляет. Написать код для окна - заняло 10 минут, а простейшая компоновка виджетов (что бы не слишком уродско смотрелось) порядка 40.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог