2012-03-27 4 views
6

Я пытаюсь поместить набор кнопок так, чтобы они были привязаны к нижней правой части экрана. Моя проблема в том, что всякий раз, когда я изменяю размер экрана, кнопки не привязаны к нижнему праву, но остаются в его текущем положении.QT - Расположить кнопки справа внизу

Я разместил две кнопки Push внутри горизонтальной компоновки. Затем я разместил этот макет внутри макета сетки, который содержит горизонтальную и вертикальную распорки. Я изменил свойство Layout макета таблицы Grid на SetMaximumSize.

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

enter image description here

ответ

5

У вас почти все прямо здесь, но вы, вероятно, упускаете из виду то, что очень легко пропустить, когда вы впервые начинаете использовать Qt Designer.

Ваш макет сетки находится внутри вашего виджета с фиксированным размером и положением. Ему тоже нужно управлять макетом. Если вы посмотрите на инспектора объектов в правом верхнем углу (который содержит вашу иерархию), вы, вероятно, увидите виджет верхнего уровня с красным значком. Это означает, что в нем нет макета. У вас есть два варианта исправить это ...

  1. У вас есть существующая сетка, размещенная в другой основной макет (например, вертикальная компоновка). Вы просто щелкните правой кнопкой мыши на своем виджете верхнего уровня в Object Inspector -> Lay Out -> [Выберите тип основного макета].
  2. Пусть ваша сетка будет главной компоновкой. Для этого вам нужно будет удалить макет сетки и упорядочить ваши дочерние элементы точно так, как у вас есть на этом снимке. Затем следуйте предыдущей опции, щелкнув правой кнопкой мыши на виджетах верхнего уровня (или пустом фоне) и выберите Lay out -> Grid. Это выведет ваши виджеты в сетку с наилучшим визуальным приложением (которое вы затем сможете исправить, если необходимо), и ваша сетка будет макетом верхнего уровня.
+0

Отлично. Большое спасибо :) – Jon

1

Это расположение сетки сделает размещения других виджетов довольно трудно. Попробуйте это вместо:

  1. Добавить (слева направо) горизонтальную проставку и две кнопки.
  2. Multiselect их всех.
  3. Выберите «Lay Out Horizontally» (Ctrl-H) с верхней панели инструментов Qt Designer (или Qt Creator) (не из окна виджета слева!).
  4. Добавить вертикальную проставку поверх предыдущих виджетов.
  5. Выберите главное окно, щелкнув по нему (теперь не выбран ни один из добавленных виджетов).
  6. Выберите «Lay Out Vertically» (Ctrl-L) с верхней панели инструментов.
  7. Выполнено.
+2

Держу пари, я мог бы сделать это за 6 шагов! :-P – jdi

+1

Я даже отказался от ??? и шаги прибыли. –

+0

Если бы мне пришлось сжечь 7-й шаг, я бы просто изменил его на: «7. Сделайте бутерброд». (+1 для справки SouthPark также) – jdi

0

Кажется, что вы делаете это правильно. Просто забыл применить макет к вашему центральному виджету, не так ли? Схема сетки должна быть размещена в вашем центральном виджете. Более удобный способ - удалить виджет сетки и выложить центральный виджет в сетке ;-)