【发布时间】:2019-10-15 00:26:54
【问题描述】:
我想在 GUI 类之间传递变量。下面,当我显示 Other_b 类 时,它显示框架,但我无法将 Main1 类 的数据放到那里。但是,当我尝试显示 Other_a 类 时,它通过了 x 值(因为它在 __init__ 内部)但它没有通过y 值,因为它与 Btn2 相关(当然也因为没有任何框架可以按下按钮)。
我该如何克服这个问题?任何帮助将不胜感激。
import wx
class Main1 (wx.Frame):
def __init__(self,parent):
wx.Frame.__init__ ( self, parent )
self.bSizer1 = wx.BoxSizer( wx.VERTICAL )
self.Btn1 = wx.Button( self, wx.ID_ANY, u"Btn1", wx.DefaultPosition, wx.DefaultSize, 0 )
self.bSizer1.Add( self.Btn1, 1, wx.ALL|wx.EXPAND, 5 )
self.SetSizer( self.bSizer1 )
self.Btn1.Bind( wx.EVT_BUTTON, self.btn1_f )
def btn1_f( self, event ):
print("here 1")
self.x = 12
self.y = 30
a=Other_a(self).Show()
b=Other_b(self).Show()
class Other_a (wx.Frame):
def __init__(self, foo):
wx.Frame.__init__ ( self )
self.bSizer2 = wx.BoxSizer( wx.VERTICAL )
self.Btn2 = wx.Button( self, wx.ID_ANY, u"Btn 2", wx.DefaultPosition, wx.DefaultSize, 0 )
self.bSizer2.Add( self.Btn2, 0, wx.ALL|wx.EXPAND, 5 )
self.SetSizer( self.bSizer2 )
self.Btn2.Bind( wx.EVT_BUTTON, self.btn2_f )
print("here 2")
print(foo.x)
def btn2_f(self,foo):
print("here 3")
print(foo.y)
class Other_b (wx.Frame):
def __init__(self,parent):
wx.Frame.__init__ ( self, parent )
self.bSizer3 = wx.BoxSizer( wx.VERTICAL )
self.Btn3 = wx.Button( self, wx.ID_ANY, u"Btn 2", wx.DefaultPosition, wx.DefaultSize, 0 )
self.bSizer3.Add( self.Btn3, 0, wx.ALL|wx.EXPAND, 5 )
self.SetSizer( self.bSizer3 )
self.Btn3.Bind( wx.EVT_BUTTON, self.btn3_f )
print("here 4")
def btn3_f(self,event):
print("here 5")
print(self.x)
if __name__ == "__main__":
app = wx.App(False)
frame = Main1(None)
frame.Show(True)
app.MainLoop()
【问题讨论】:
标签: python class wxpython share