Вопрос

Как мне наложить виджеты в Qt?

Я хочу создать некоторые виджеты и размещать их вне макета, но лучше изменить их размер и положение при изменении геометрии другого виджета.

Что-то вроде кнопок на скриншоте:

alt text

Это было полезно?

Решение

Вам просто нужно создать свой QPushButton (или любой QWidget), указать его родительский QWidget, а затем отобразить его.

Не добавляйте его в родительский макет, иначе вы не сможете переместить его так, как хотите.

Не забудьте указать его родителя, иначе он будет отображаться как независимый QWidget.

В этих условиях ваш QPushButton будет считаться дочерним элементом QWidget, но не элементом макета родителя. Так что это будет «плавающий» child, и вы должны управлять его поведением при изменении размера родительского QWidget.

Если вам нужно унифицированное поведение для всех кнопок наложения, вы должны создать подкласс QLayout и переопределите членов bahaviour.

Другие советы

Если они являются потомками виджета без макета, я думаю, вы сможете перемещать их по своему усмотрению.

Мне нужен был такой виджет для проекта, над которым я работаю, поэтому я воспользовался советом Патриса и написал этот код (Python) Наложение виджетов PyQt4

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top