如何制作不同大小的 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()
当显示另一个页面时,以另一种方式设置大小策略。
【讨论】:
但是,堆叠的小部件如何占用较小或较大页面的大小?如果我对页面使用QWidget
,sizehint()
返回 -1 -1
试试resize(minimumSizeHint());
。这会将其缩小到最小尺寸。
对。如果我打印page1.minimumSizeHint()
(同样适用于page2
),我会得到QSize(-1, -1)
。这些页面应该属于QWidget
类吗?
它可以是任何小部件。只是应该源自QWidget
。以上是关于如何制作不同大小的 QStackedWidget 的不同页面?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 QStackedWidget 大小设置为子小部件的最小尺寸?