QStackedWidget页面中的布局调整

4

我试图使QStackedWidget中一个小工具在父级QStackedWidget调整大小时自动调整大小。但是,在Qt Creator中,这个简单的任务似乎不可能完成。向页面添加布局似乎没有任何效果,布局仍然保持其设计大小,并且不会调整大小。我认为这是因为布局被添加到页面小部件作为子级,而不是直接附加到页面小部件。似乎没有办法真正地将布局添加到页面。

如何使用Qt Creator使QStackedWidget中的小工具自适应调整大小?

顺便说一句,我真希望Qt能够放弃它的布局系统,因为使用基于定位点的系统要容易得多。


你是在使用Qt3支持的小部件(QWidgetStack)还是新的Qt4小部件(QStackedWidget)? - RA.
这是Qt4的QStackedWidget。感谢提醒... - Ian
1个回答

6
Qt Creator将小部件视为已经存在布局,您可以从设计器中的小部件上下文菜单(右键单击)或右侧的小部件列表中访问该布局。这意味着,如果您想将顶级布局分成进一步的子布局,则只需在小部件上放置布局(从调色板中)。下图显示了此上下文菜单。
请注意右侧显示带有红色穿过的圆圈的小部件图标。这表示这些小部件未定义顶级布局。一旦选择了布局类型,红圈将消失,并且图标将反映您的布局选择。
在您的情况下,将QStackedWidget放在主窗口小部件上后,您可以右键单击主窗口小部件,选择“布局”,然后选择“水平布局”。这将使堆积小部件填充整个主窗口小部件并随其调整大小。
同样地,如果您在“页面”小部件之一上放置任何小部件,然后可以右键单击该页面小部件并为其分配顶级布局,这将导致这些小部件根据页面小部件而调整大小。

1
Arnold,感谢您的回答。我已经为每个页面和父堆栈添加了布局,这解决了问题。Qt Creator存在一些问题,使得这个过程不太直观。首先,如果您在对象列表中右键单击页面,则根本不会出现布局子菜单——为什么呢?要向页面添加布局,您必须右键单击具有正确页面设置的堆栈对象,这将向页面添加布局,但是此上下文菜单中的所有内容(推广、更改名称等)都表明感兴趣的对象是父堆栈... 真让人恼火... - Ian
谢谢,通过您的答案我发现如果您仅使用C++/Qt(不使用Qt Designer),添加布局以包含QStackedWidget也是必要的。 - user6547518

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接