Domanda

Come posso sovrapporre i widget in Qt?

Voglio creare alcuni widget e posizionarli fuori dal layout, ma piuttosto modificarne le dimensioni e la posizione quando viene cambiata la geometria di qualche altro widget.

Qualcosa come i pulsanti dello screenshot:

alt text

È stato utile?

Soluzione

Devi solo creare il tuo QPushButton (o qualsiasi QWidget), indicare il suo QWidget principale e quindi visualizzarlo.

Non aggiungerlo al layout principale altrimenti non sarai in grado di spostarlo come desideri.

Non dimenticare di indicare il suo genitore altrimenti verrà visualizzato come QWidget indipendente.

In queste condizioni il tuo QPushButton sarà considerato figlio del QWidget ma non membro del layout del genitore. Quindi sarà un "virgola mobile" figlio e devi gestirne il comportamento durante il ridimensionamento del QWidget del genitore.

Se desideri un comportamento unificato per tutti i pulsanti di overlay, devi sottoclassare QLayout e ridefinisci il comportamento dei membri.

Altri suggerimenti

Se sono figli di un widget senza layout, dovresti essere in grado di spostarli come preferisci, penso.

Avevo bisogno di un widget come questo per un progetto a cui sto lavorando, quindi ho seguito i consigli di Patrice e ho scritto questo codice (Python) Overlay widget PyQt4

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top