我正在 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
对象:
import MyFrmae
class GUI(MyFrame):
def __init_(self,parent):
MyFrame.__init__(self,parent)
def updateText(self):
self.staticText.SetLabel('My Other Text')
问题是 wxFormBuilder 没有self
在任何 FlexGridSizer 对象前面附加 a 。所以生成的代码如下:
myFlexGridSizer = wx.FlexGridSizer(3,1,0,0)
代替:
self.myFlexGridSizer = wx.FlexGridSizer(3,1,0,0)
结果,我无法从任何其他类访问该对象,而我确实需要这样做。
所以...
- 有没有办法从另一个类访问一个对象,如果它
self
前面没有,即使我直接继承它? - 有没有办法更改 wxFormBuilder 中的设置,以便它附加
self
?