QT-разместить кнопки в правом нижнем углу
Я пытаюсь разместить набор кнопок так, чтобы они были закреплены в правом нижнем углу экрана. Моя проблема в том, что всякий раз, когда я изменяю размер экрана, кнопки не закреплены в правом нижнем углу, но остаются в своем текущем положении.
Я поместил две кнопки внутри горизонтальной компоновки. Затем я поместил этот макет внутри макета сетки, который содержит горизонтальную и вертикальную прокладки. Я изменил свойство layoutSize макета сетки на SetMaximumSize.
Что я делаю неправильно, так что я могу получить мои кнопки, чтобы быть закреплены в правом нижнем углу?
3 ответов
У вас есть почти все прямо здесь, но вы, вероятно, упустили что-то, что очень легко пропустить, когда вы впервые начинаете использовать Qt Designer.
ваш макет сетки сидит внутри виджета с фиксированным размером и положением. Он тоже должен управляться макетом. Если вы посмотрите на инспектор объектов в правом верхнем углу (который содержит вашу иерархию), вы, вероятно, увидите виджет верхнего уровня с красным значком. Это означает, что он не содержит макет. Вы есть два варианта исправления...
- поместите существующий макет сетки в другой основной макет (например, вертикальный макет). Вы просто щелкните правой кнопкой мыши на виджете верхнего уровня в Инспекторе объектов - > выложить - > [выберите основной тип макета].
- ваша сетка будет основным макетом. Для этого вам нужно будет удалить макет сетки и ваши дочерние элементы расположены именно так, как они есть на этом рисунке. Затем следуйте предыдущей опции, щелкнув правой кнопкой мыши на верхнем уровне виджета (или пустой фон) и выберите выкладывать -> сетка. Это позволит поместить ваши виджеты в сетку в лучшем визуальном соответствии (который вы можете исправить, если это необходимо), и ваша сетка будет макетом верхнего уровня.
этот макет сетки сделает размещение других виджетов довольно сложным. Попробуйте вместо этого:
- добавить (слева направо) горизонтальную прокладку и две кнопки.
- Multiselect их всех.
- выберите "выложить горизонтально" (Ctrl-H) на верхней панели инструментов Qt Designer (или Qt Creator) (не из окна виджета слева!).
- добавить вертикальную прокладку поверх предыдущих виджетов.
- выберите главное окно, щелкнув его (ни один из добавленные виджеты теперь выбраны).
- выберите "выложить вертикально" (Ctrl-L) на верхней панели инструментов.
- сделано.
кажется, что вы делаете это правильно. Просто забыл применить макет к центральному виджету, верно? Макет сетки должен быть расположен в вашем Центральном виджете. Более удобный способ-удалить виджет компоновки сетки и выложить центральный виджет в сетку; -)