问题描述
我试图将一个按钮放在另一个按钮内部/上方,这在不使用任何布局时是可行的,但在我的情况下,我不得不使用导致问题的布局。下面的图片会更清楚。
无布局:
有布局:
解决方法
对于这种情况,您可以使用 QStackedLayout
,并将堆栈模式设置为 StackAll
以允许所有小部件可见。在 C++ 中,您可以stackLayout->setStackingMode(QStackedLayout::StackAll);
。
然后,将每个按钮插入不同的页面,并将带有 x 按钮的页面设置为活动页面(最前面)。每个页面都可以有自己的布局(例如,将 x 按钮放在右上角)。
QStackedLayout
不能直接在 Designer 中使用,只能通过编程方式使用。不过,如果您想在 Designer 中对其进行布局,则可以使用 QStackedWidget
(使用 QWidget
的 QStackedLayout
)。 stackingMode
属性必须以编程方式设置。