I am using QT to develop a rich UI application.
Simple example would be, I have to show a boiler with the water level inside the feed tank.
Now in this case the progress bar would be in the foreground and the label in the background.
Regards,
Use QWidget::move() to set the position, QWidget::resize() to set the size and reimplement the parent's resizeEvent() handler if you need to re-position the widgets if their parent resizes.
You just need to create your widget, indicate its parent QWidget and then display it.
Don't add it to the parent layout else you will not be able to move it as you want.
Don't forget to indicate its parent else it will be displayed as independent widget.
In these conditions your widget will be considered as child of the QWidget but not member of the parent's layout. So it will be a "floating" child and you must manage it's behavior when resizing parent's QWidget.
Additionally to the answers by Patrice Bernassola and Frank Osterfeld the stacking order might be of interest. It corresponds to the order of the children which you get by findChildren
and the ways to manipulate the order are using raise_
(with the trailing underscore), lower
or stackUnder
.
An example changing the order with each of the 3 available functions using PySide is here:
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_()
I do it by creating a class based on Qwidget put its position in the constructor
ex: QPointer a = new QWidget (0, posx, posy, width, height)
in the constructor of this Qwidgetclass add these integrers posx, posy, width, height and then do this.move(posx,posy); this.resize(width,height);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With