2009-10-25 11 views
9

Comment superposer des widgets dans Qt? Je veux créer des widgets et les placer hors de la mise en page, mais plutôt modifier leur taille et leur position lorsque la géométrie d'un autre widget est modifiée.Qt Widget Overlays

Quelque chose comme les boutons sur la capture d'écran:

alt text

Répondre

9

Vous avez juste besoin de créer votre QPushButton (ou n'importe quel QWidget), d'indiquer son parent QWidget, puis de l'afficher. Ne l'ajoutez pas à la mise en page parente, sinon vous ne pourrez pas le déplacer comme vous le souhaitez. N'oubliez pas d'indiquer son parent, sinon il sera affiché comme QWidget indépendant.

Dans ces conditions, votre QPushButton sera considéré comme enfant du QWidget mais pas membre de la mise en page du parent. Ce sera donc un enfant "flottant" et vous devez gérer son comportement lors du redimensionnement de QWidget par le parent.

Si vous voulez un comportement unifié pour tous les boutons de superposition, vous devez sous-classer QLayout et redéfinir le comportement des membres.

+0

Pour le droit d'alignement vu dans la capture d'écran, on peut ré-écrire resizeEvent() pour le widget parent et déplacez manuellement les widgets enfants. –

3

S'ils sont enfants d'un widget sans mise en page, vous devriez être en mesure de les déplacer comme vous s'il vous plaît, je pense.

2

je besoin d'un widget comme celui-ci pour un projet sur lequel je travaille, donc j'ai demandé conseil Patrice et écrit ce code (Python) PyQt4 Widget Overlay