【问题标题】:Sizing of wxPython WizardwxPython 向导的大小调整
【发布时间】:2015-09-03 20:16:21
【问题描述】:

我正在使用 wxPython 创建一个包含多个页面的向导对话框。我在布置控件时遇到了麻烦,因为每个页面的大小至少与最大的向导页面一样大。例如。如果我的向导有三页,并且第三页的控件/小部件比其他两页多,则第二页和第三页有很多额外的空间,因为向导根据第 3 页计算其大小(因为它是最大的。) 第一页还有两个看起来很邋遢。

我在向导类的文档中读到了这一点,这让我相信不可能为每个向导页面设置自定义页面大小:

向导使用 sizer 布局,页面区域 sizer 是 页面的占位符。所有页面在显示之前都已调整大小 以匹配向导页面区域。

Page area sizer 的最小尺寸是几个中的最大值 价值观。首先,将所有页面(或其他对象)添加到 sizer。 其次,通过重复应用 WizardPage.GetNext 可访问的所有页面 到任何插入到 sizer 中的页面。

第三,使用 SetPageSize 和 FitToPage 指定的最小尺寸。 四、总精灵高度可能会增加以适应 位图高度。第五也是最后一点,巫师永远不会比某些人小 内置最小尺寸以避免太小的向导。

调用者可以使用 Sizer.SetMinSize 将其放大到超出最小值 尺寸。如果 RESIZE_BORDER 被传递给构造函数,用户可以调整大小 向导,因此页面区域(但不要使其小于 最小尺寸)。

建议将第一页添加到page area sizer。为了 简单的向导,这将放大向导以适应最大的页面。

对于非线性向导,每个独立链的第一页应该 被添加。调用者指定的大小可以使用 Sizer.SetMinSize 。将页面添加到页面区域大小调整器会影响 可以更改的页面区域周围的默认边框宽度 设置边框。

是否有任何解决方案或变通方法可以让我的向导页面仅根据当前页面上的内容调整大小?

【问题讨论】:

    标签: python user-interface wxpython


    【解决方案1】:

    这听起来对我来说是正确的。该文档似乎确实表明您想要使用向导小部件无法实现。不过,您可以滚动自己的向导。只需创建一系列面板并隐藏后面的页面或在您完成向导时创建后续页面。

    我写了一个关于滚动你自己的向导的教程,欢迎你作为起点使用:

    当然,让一个巫师在你通过它时改变它的大小会分散注意力,这不是正常的巫师行为。您可能需要重新考虑如何布置控件或将大页面上的小部件放入滚动面板小部件中,使其大小与其他两个相同。

    【讨论】:

    • 谢谢 - 我要创建自己的向导。感谢您的参考。
    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 2011-08-25
    • 2011-10-13
    • 2013-08-25
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多