基础能力
控件归属
了解容器是否会删除你交给它的控件。
归属模式
Expander::setContentWidget()、Field::setEditor()、SplitView::addPane() 和 Accordion::addItem() 等接口都有带 WidgetOwnership 参数的重载。Borrowed:释放后控件没有父对象,宿主不会删除它。Reparented:释放后回到原来的父控件。Owned:由宿主删除。不传该参数时,Expander、Field 和 Accordion 为借用,SplitView::addPane() 则接管所有权。
#include <FluentQt/Layout.h>
expander->setContentWidget(editor, fluent::WidgetOwnership::Borrowed);
// Later, detach without destroying:
QWidget* taken = expander->takeContentWidget();expander.setBorrowedContentWidget(editor)
# Later, detach without destroying:
taken = expander.takeContentWidget()PySide6
PySide6 提供 setBorrowedContentWidget()、setOwnedContentWidget() 和 setBorrowedEditor() 等明确的方法。借用的无父控件在使用期间要保留 Python 引用。