Python 如何在PySide中使用layout.adoptLayout(布局)?

Python 如何在PySide中使用layout.adoptLayout(布局)?,python,pyside2,qlayout,Python,Pyside2,Qlayout,我有 现在,在某些情况下,我希望将QVBoxLayout更改为QHBoxLayout,如果可能的话,我希望在创建之后执行此操作。也就是说,不需要从一开始就简单地创建QHBoxLayout 我试过使用 widget = QtWidgets.Widgets() layout = QtWidgets.QVBoxLayout(parent=widget) 但这只会返回True,并且不会更改实际布局。注意:采用布局/(是一个不应该公开的内部方法,因此我认为它是一个bug,因为它也没有文档记录 要实现方向

我有

现在,在某些情况下,我希望将
QVBoxLayout
更改为
QHBoxLayout
,如果可能的话,我希望在创建之后执行此操作。也就是说,不需要从一开始就简单地创建
QHBoxLayout

我试过使用

widget = QtWidgets.Widgets()
layout = QtWidgets.QVBoxLayout(parent=widget)

但这只会返回
True
,并且不会更改实际布局。

注意:
采用布局/(
是一个不应该公开的内部方法,因此我认为它是一个bug,因为它也没有文档记录

要实现方向更改,可以使用QBoxLayout类:

从PySide2导入QtCore、QtWidgets
如果名称=“\uuuuu main\uuuuuuuu”:
app=qtwidts.QApplication()
widget=qtwidts.QWidget()
lay=qtwidts.QBoxLayout(qtwidts.QBoxLayout.TopToBottom,widget)
对于范围(4)中的i:
button=QtWidgets.QPushButton(f“button{i}”)
lay.addWidget(按钮)
widget.show()
def on_timeout():
方向=(
qtwidts.QBoxLayout.TopToBottom
如果lay.direction()==QtWidgets.QBoxLayout.LeftToRight
else qtwidts.QBoxLayout.LeftToRight
)
设置方向(方向)
计时器=QtCore.QTimer(间隔=1000,超时=on\u超时)
timer.start()
app.exec()

我只想让布局从垂直变为水平。目前什么都没有发生。我觉得我在某一点上确实做到了,但可能我错了。注意:adoptLayout是一个内部方法,不应该公开,所以我认为这是一个错误,因为它也没有文档记录。你可以在QLayout中找到adoptLayout:那里只显示输入和输出的类型,但它并没有说它有这个功能。嗯,也许这是一个死胡同。:/setDirection完成了这个技巧。谢谢你的解决方案!
layout.adoptLayout(QtWidgets.QHBoxLayout())