如何制作不同大小的 QStackedWidget 的不同页面?

Posted

技术标签:

【中文标题】如何制作不同大小的 QStackedWidget 的不同页面?【英文标题】:How to make different pages of a QStackedWidget of different sizes? 【发布时间】:2015-02-18 10:28:18 【问题描述】:

我有一个有 2 页的 QStackWidget。一页只包含 2 个QLineEdit 小部件,另一页包含一个大的QTextEdit。有谁知道如何使一页比另一页大,以便窗口仍然紧紧地适合每一页?在 Qt 设计器中,QStackWidget 必须采用更大的尺寸才能首先使用QTextEdit,但是带有QLineEdit 小部件的页面会太大。

谢谢

【问题讨论】:

【参考方案1】:

您可以将显示页面的大小策略设置为QSizePolicy.Preferred,其他页面设置为QSizePolicy.Ignored。之后调用adjustSize 更新尺寸。例如,当您将当前索引设置为显示 page1 时:

page1.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
page2.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)

stackedWidget.adjustSize()
adjustSize()

当显示另一个页面时,以另一种方式设置大小策略。

【讨论】:

但是,堆叠的小部件如何占用较小或较大页面的大小?如果我对页面使用QWidgetsizehint() 返回 -1 -1 试试resize(minimumSizeHint());。这会将其缩小到最小尺寸。 对。如果我打印page1.minimumSizeHint()(同样适用于page2),我会得到QSize(-1, -1)。这些页面应该属于QWidget 类吗? 它可以是任何小部件。只是应该源自QWidget

以上是关于如何制作不同大小的 QStackedWidget 的不同页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QStackedWidget 大小设置为子小部件的最小尺寸?

将 QStackedWidget 调整为打开的页面[重复]

在 QStackedWidget 页面中调整布局大小

PyQt:如何在 QStackedWidget 中切换小部件

QT如何实现QStackedWidget界面间的切换

将自定义小部件添加到 QStackedWidget