QT-разместить кнопки в правом нижнем углу

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

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

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

enter image description here

3 ответов


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

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

  1. поместите существующий макет сетки в другой основной макет (например, вертикальный макет). Вы просто щелкните правой кнопкой мыши на виджете верхнего уровня в Инспекторе объектов - > выложить - > [выберите основной тип макета].
  2. ваша сетка будет основным макетом. Для этого вам нужно будет удалить макет сетки и ваши дочерние элементы расположены именно так, как они есть на этом рисунке. Затем следуйте предыдущей опции, щелкнув правой кнопкой мыши на верхнем уровне виджета (или пустой фон) и выберите выкладывать -> сетка. Это позволит поместить ваши виджеты в сетку в лучшем визуальном соответствии (который вы можете исправить, если это необходимо), и ваша сетка будет макетом верхнего уровня.

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

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

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