【问题标题】:wxPython -- GetSize doesn't return actual sizewxPython -- GetSize 不返回实际大小
【发布时间】:2015-03-08 20:30:02
【问题描述】:

我有一个笔记本并添加了两个面板。当我尝试获取其中一个面板的可用区域时,它返回 (20,20) - 我想这是放入东西之前的尺寸。我想在放入东西之前获得这个尺寸,因为某些比例取决于在它上面,我宁愿不使用绝对值。

我没有设置实际尺寸,我只是用 boxsizer 调整所有尺寸并设置比例。我想获得分配给面板的区域的实际像素宽度(它不占用整个程序窗口区域)。

我尝试在 GetSize 之前调用 Layout,我尝试过 GetVirtualSize 和 Get ClientSize 以及任何其他可用的大小返回,仍然是 (20, 20) 或有时是 (10,40)。我试过让父母的大小,不行。我得到了祖父母的大小,它显示正确,但这是整个程序窗口的大小。有没有办法获得面板的潜在可用区域?如果需要,我可以发布布局,但它很长。

【问题讨论】:

    标签: user-interface wxpython


    【解决方案1】:

    听起来您正在尝试在创建窗口时执行此操作,在初始布局和大小调整完成之前,因此所有内容仍然具有其初始大小。有一些替代方法可以处理这种情况。您可以延迟创建面板的内容,直到第一个 size 事件。或者,您可以设计您的 sizer 布局以适应任​​何(合理的)尺寸。或者,如果需要,您可以稍后调整/重做 sizer 布局。

    或者也许最简单的方法是向父级或顶级父级发送一个虚假的大小事件,以便他们按照正常布局调整子窗口的大小,这将级联到您的面板。这可能不适用于所有情况,但它很常见,有一个窗口方法,SendSizeEvent

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多