2009-10-25 14 views
9

Jak nakładać widżety w Qt?Nakładki na nakładki Qt

Chcę tworzyć widżety i umieszczać je poza układem, ale dostosowuję ich rozmiar i położenie, gdy zmieni się geometria innego widżetu.

Coś przycisków na zrzucie:

alt text

Odpowiedz

9

Wystarczy utworzyć QPushButton (lub dowolną QWidget), wskazać macierzysty QWidget, a następnie go wyświetlić.

Nie dodawaj go do układu nadrzędnego, ponieważ nie będzie można go przenieść tak, jak chcesz.

Nie zapomnij wskazać swojego rodzica, zostanie on wyświetlony jako niezależny QWidget.

W tych warunkach Twój QPushButton będzie uważany za potomka QWidget, ale nie będzie członkiem układu rodzica. Więc będzie to "pływające" dziecko i musisz zarządzać jego zachowaniem podczas zmiany rozmiaru QWidget rodzica.

Jeśli chcesz ujednolicone zachowanie dla wszystkich przycisków nakładki, powinieneś podklasę QLayout i przedefiniować członków bahaviour.

+0

za prawo wyrównanie widać na zrzucie ekranu, można reimplement resizeEvent() dla widgetu nadrzędnego i przesuń tam widżety podrzędne ręcznie. –

3

Jeśli jesteś dzieckiem widget bez układu, powinien być w stanie przenieść je wokół, jak należy, jak sądzę.

2

Potrzebowałem takiego widget dla projektu pracuję nad, więc wziąłem porady Patrice i napisał ten kod (Python) PyQt4 Widget Overlay