在重构会话中,我将大量gui代码放入一些小函数中,这些函数直接将数据插入到wx尺寸仪对象。在
例如,这个小函数:
def buildStatusDisplay(self, status_disp, flag):
grid = wx.FlexGridSizer(cols=1, hgap=5, vgap=0)
font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.LIGHT, False, 'Segoe UI')
for option in status_disp:
left = wx.StaticText(self, -1, option)
left.SetFont(font)
grid.Add(left, 0, flag=flag)
return grid
因此它使用throwaway left
创建所有StaticText对象,然后返回FlexGrid
。但是,我需要StaticText对象中的一些标签来根据用户输入进行更新,但是,我不确定如何访问它们。在
我已经循环了从函数返回的sizer,但是我没有看到任何关于让我获得对组成sizer的对象的引用的方法。在
^{pr2}$GetChildren()
只返回SizerItems
,似乎也不包含对底层对象的任何引用。在
有人知道如何进入尺寸机内部的东西吗?我想我可以稍微分解一下函数,或者返回一个对象列表和sizer,或者简单地转储函数并将标识符保存到main中需要修改的对象。。但是。。。我的gui代码已经够意大利面了。如果我能避免的话,我愿意。在
我几个月前就回答了这样的问题:wxPython: How to get sizer from wx.StaticText?
基本上,你只需要这样做:
在这种情况下,你可以看到我只是在检查wx.TextCtrl,但您可以检查任何您喜欢的小部件。我还写了一篇关于我的blog主题的文章。在
在
wx.SizerItem
上,有一个GetWindow
,它正好给了你。使用IsWindow
检查是否有可用的“窗口”。所有底层对象都从wx.Window
继承,所以这就是您想要的。在下面是一个示例,
obj
是一个wx.Frame
对象:相关问题 更多 >
编程相关推荐