J'utilise QT pour développer une application d'interface utilisateur riche.
Un exemple simple serait, je dois montrer une chaudière avec le niveau d'eau à l'intérieur du réservoir d'alimentation.
Maintenant, dans ce cas, la barre de progression serait au premier plan et l'étiquette en arrière-plan.
Cordialement,
Il vous suffit de créer votre widget, d'indiquer son QWidget parent, puis de l'afficher.
Ne l'ajoutez pas à la mise en page parent, sinon vous ne pourrez pas le déplacer comme vous le souhaitez.
N'oubliez pas d'indiquer son parent sinon il sera affiché comme un widget indépendant.
Dans ces conditions, votre widget sera considéré comme un enfant du QWidget mais pas un membre de la présentation du parent. Ce sera donc un enfant "flottant" et vous devez gérer son comportement lors du redimensionnement de QWidget du parent.
Utilisez QWidget :: move () pour définir la position, QWidget :: resize () pour définir la taille et réimplémentez le gestionnaire resizeEvent () du parent si vous devez repositionner les widgets si leur parent est redimensionné.
En plus des réponses de Patrice Bernassola et Frank Osterfeld l’ordre d’empilement pourrait présenter un intérêt. Cela correspond à l'ordre des enfants que vous obtenez par findChildren
et les manières de manipuler cet ordre utilisent raise_
(avec le tiret bas), lower
ou stackUnder
.
Voici un exemple de modification de l'ordre avec chacune des 3 fonctions disponibles à l'aide de PySide:
from PySide import QtGui
app = QtGui.QApplication([])
window = QtGui.QWidget()
window.resize(400, 300)
window.show()
rA = QtGui.QLabel()
rA.name='square'
rA.resize(100, 100)
rA.setStyleSheet('background-color:red;')
rA.setParent(window)
rA.show()
text = QtGui.QLabel('text')
text.name='text'
text.setParent(window)
text.show()
# text was added later than rA: initial order is square under text
rA.raise_()
rA.lower()
text.stackUnder(rA)
children = window.findChildren(QtGui.QWidget)
for child in children:
print(child.name)
app.exec_()
Je le fais en créant une classe basée sur Qwidget mettre sa position dans le constructeur
ex: QPointer a = new QWidget (0, posx, posy, largeur, hauteur)
dans le constructeur de cette Qwidgetclass, ajoutez ces intégrateurs posx, posy, width, height puis faites this.move (posx, posy); this.resize (width, height);