如何在qt中设置小部件的绝对位置
我正在使用QT开发丰富的UI应用程序。
一个简单的例子就是,我必须展示一个锅炉内的水位。
现在,在这种情况下,进度条将位于前景中,而标签位于后台。
问候,
你只需要创建你的小部件,指出它的父QWidget,然后显示它。
不要将其添加到父级布局,否则您将无法将其移动到您想要的位置。
不要忘记指出它的父母,否则它将显示为独立的小部件。
在这些情况下,您的小部件将被视为QWidget的子项,但不是父级布局的成员。 因此,它将是一个“浮动”的孩子,您必须在调整父母的QWidget时管理它的行为。
使用QWidget :: move()来设置位置,QWidget :: resize()设置大小并重新实现父级的resizeEvent()处理程序,如果您需要重新定位窗口小部件的父级调整大小。
除了Patrice Bernassola和Frank Osterfeld的答案之外,堆叠顺序也许是有趣的。 它对应于findChildren
获得的孩子的顺序,操纵顺序的方法是使用raise_
(尾部下划线), lower
或stackUnder
。
使用PySide改变3个可用函数的顺序的例子如下:
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_()
链接地址: http://www.djcxy.com/p/77395.html
上一篇: How to set absolute position of the widgets in qt
下一篇: Doing CORS manually