This question already has answers here:
Qt QStackedWidget Resizing Issue

(3个答案)


已关闭6年。




我希望我的 QStackedWidget 调整到打开的页面的大小。

我在第一页附加了很多小部件,但其余页面只有一个按钮。因此它们保持很大,第一页就可以了。

如何使我的 QStackedWidget 具有正在查看的页面的大小。

我之所以要这样做,是因为我有三个不同的选择,然后我还有其他的事情。如果我切换到有一个按钮然后有很多空白的模式,我不明白为什么它不调整大小。

最佳答案

你可以使用这个 Resizable StackedWidget

在我的实践中,我记得我有从 QStackedWidget 派生的类,并带有重新定义的 addWidget 方法。在这种方法中,我接下来做了:

void ResizableStackedWidget::addWidget(QWidget* pWidget)
{
   pWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
   QStackedWidget::addWidget(pWidget);
}

并使用此插槽连接到 currentChange(QWidget*) 信号:
void ResizableStackedWidget::onCurrentChanged(int index)
{
   QWidget* pWidget = widget(index);
   Q_ASSERT(pWidget);
   pWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
   pWidget->adjustSize();
   adjustSize();
}

关于qt - 将 QStackedWidget 调整为打开的页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14480696/

10-12 02:32