Наложения виджетов Qt
-
06-07-2019 - |
Вопрос
Как мне наложить виджеты в Qt?
Я хочу создать некоторые виджеты и размещать их вне макета, но лучше изменить их размер и положение при изменении геометрии другого виджета.
Что-то вроде кнопок на скриншоте:
Решение
Вам просто нужно создать свой QPushButton (или любой QWidget), указать его родительский QWidget, а затем отобразить его.
Не добавляйте его в родительский макет, иначе вы не сможете переместить его так, как хотите.
Не забудьте указать его родителя, иначе он будет отображаться как независимый QWidget.
В этих условиях ваш QPushButton будет считаться дочерним элементом QWidget, но не элементом макета родителя. Так что это будет «плавающий» child, и вы должны управлять его поведением при изменении размера родительского QWidget.
Если вам нужно унифицированное поведение для всех кнопок наложения, вы должны создать подкласс QLayout
и переопределите членов bahaviour.
Другие советы
Если они являются потомками виджета без макета, я думаю, вы сможете перемещать их по своему усмотрению.
Мне нужен был такой виджет для проекта, над которым я работаю, поэтому я воспользовался советом Патриса и написал этот код (Python) Наложение виджетов PyQt4