我的 traitsui 应用程序中有一个用于 mayavi 场景的 tvtk SceneEditor。在定义这个编辑器时,我要求它的大小为 500x500。
由于 mayavi 工具栏,场景编辑器本身理解它在正常情况下的大小比这个小:
>>> self.scene.scene_editor.get_size()
wx.Size(500, 468)
而当窗口被放大以至于编辑器占用更多空间时,它也明白这一点
>>> self.scene.scene_editor.get_size()
wx.Size(500, 781)
但是,如果编辑器变得更小,它会拒绝占用更少的空间(即使内容可以很容易地重新缩放),因为编辑器被指定为占用 500x500。它允许调整编辑器的大小,但只是切断部分显示,直到再次放大。
我想知道是否有办法a)询问当前在屏幕上显示了多少编辑器(而不是编辑器愿意显示的最小尺寸)和b)使编辑器默认为500x500但愿意如果它变小,要求它的内容重新缩放。
我正在使用 wxpython 后端。
编辑:场景包含在一个组中也很重要layout='split'
——在探索了这个问题并遇到了 wx 在添加 traitsui 小部件时生成的大量 sizer 之后,我意识到这也可能很重要。