我正在使用wxPython创建一个包含多个页面的向导对话框。我在布局控件时遇到问题,因为每个页面的大小至少与最大的向导页面一样大。例如。如果我的向导有三个页面,而第三页有比其他两个更多的控件/小部件,那么第二页和第三页有很多额外的空间,因为向导根据第3页计算它的大小(因为它是最大的。)第一页两个看起来很草率。
我在向导类的文档中读到了这一点,这让我相信每个向导页面都不可能有自定义页面大小:
使用sizer配置向导,页面区域大小为 页面的占位符。所有页面在显示之前都会调整大小 匹配向导页面区域。
页面区域大小调整器的最小大小是最大的几个 值。首先,将所有页面(或其他对象)添加到sizer中。 其次,通过重复应用WizardPage.GetNext可以访问所有页面 到任何插入sizer的页面。
第三,使用SetPageSize和FitToPage指定的最小大小。 第四,可以增加总向导高度以适应 位图高度。第五也是最后,巫师永远不会比一些小 内置最小尺寸,以避免太小的向导。
调用者可以使用Sizer.SetMinSize将其放大到最小值 尺寸。如果将RESIZE_BORDER传递给构造函数,则用户可以调整大小 向导,然后是页面区域(但不要小于 最小的尺寸)。
建议将第一页添加到页面区域大小调整器中。对于 简单的向导,这将扩大向导以适应最大的页面。
对于非线性向导,每个单独链的第一页应该是 加上。呼叫者指定的大小可以使用 Sizer.SetMinSize。将页面添加到页面区域大小调整器会影响 页面区域周围的默认边框宽度,可以更改 SetBorder。
是否有人有解决方案或解决方法,只允许根据当前页面上的内容调整向导页面的大小?
答案 0 :(得分:1)
这对我来说听起来不错。文档确实似乎表明使用向导小部件无法实现您想要做的事情。你可以滚动你自己的向导。只需创建一系列面板并隐藏后面的页面,或在完成向导时创建后续页面。
我写了一篇关于滚动自己的向导的教程,欢迎您将其作为起点:
当然,拥有一个改变其大小的向导会让你分心,这不是正常的向导行为。您可能想要重新考虑如何布置控件或将大页面上的小部件放入滚动的面板小部件中,以使其与其他两个小部件的大小相同。