我正在用wxFormBuilder构建一个GUI,并用Python编写代码。在
我注意到,我构建的所有小部件都分配给生成的代码中的self
。例如,包含一段文本的GUI可能看起来像:
class MyFrame(wx.Frame):
def __init__(self,parent):
wx.Frame.__init__(self,parent)
self.myStaticText = wx.StaticText(self,wx.ID_ANY,'My Text',0)
因此对象myStaticText
成为MyFrame
类的属性。这很好,因为我可以编写一个继承这个类的新类,然后执行其他函数,例如更新myStaticText
对象:
问题是wxFormBuilder没有在任何FlexGridSizer对象前面附加一个self
。因此生成的代码看起来像:
myFlexGridSizer = wx.FlexGridSizer(3,1,0,0)
而不是:
self.myFlexGridSizer = wx.FlexGridSizer(3,1,0,0)
因此,我不能从任何其他类访问该对象,这是我真正需要做的。在
所以。。。在
self
,即使我直接继承它,有没有办法从另一个类访问它?在self
?在
如果我理解得很好,您想访问表单生成器生成的
FlexGridSizer
?在我从未使用过},然后忘记它,因为布局不会再改变了。在
wxFormBuilder
,但我认为它的想法是它创建一个wxFlexGridSizer
,操作它来完成表单的布局,并在你的wxWindow
(或者在你的例子中是wxFrame
)上调用{一个简单的选择(但不是最好的)是在你的框架上调用
GetSizer
,你可以从那里访问wxSizer
。在另一个选择是在MyFrame中有一个特定的}生成的代码
sizer
成员,在这里您将存储wxFlexGridSizer
,但这可能涉及到更改{相关问题 更多 >
编程相关推荐