1

私のクラスは、

 class MainFrame(wx.Frame):
     def __init__(self,parent,ID,title):
         wx.Frame.__init__(self, parent, ID, title, style=wx.DEFAULT_FRAME_STYLE ^   wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX,size=(600,500))
         wx.Frame.CenterOnScreen(self) 
         ..........
         ..........
         panel1 = wx.Panel(panel, wx.ID_ANY,size=(550,200),pos=(25,150))
         log = wx.TextCtrl(panel1, wx.ID_ANY, size=(550,200),style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)

     def PanelStatus(message):
         ...............

関数 'PanelStatus' の関数 ' init 'からメソッドPanel1 を呼び出し、後でこの関数を他のクラスで呼び出したいのですが、その方法は?? 私はプログラミング言語に非常に慣れていません。助けてください。

4

2 に答える 2

1

PanelStatusまず、関数に新しい最初の引数を与える必要がありますself。これはメソッドであるためです。メソッドは、呼び出されたインスタンスを最初の引数として自動的に取得します (名前selfは慣例です)。

その後、 で呼び出すことができ__init__ますself.PanelStatus("some message")。プログラムの他の部分の他のコードがMainFrameインスタンスへの参照を持っている場合、それらは を呼び出すことができますmyMainFrame.PanelStatus("some other message")

于 2013-03-28T05:59:33.047 に答える
0

私はこのようなことをしましたが、うまくいきました。

class MainFrame(wx.Frame):
    def __init__(self,parent,ID,title):
        wx.Frame.__init__(self, parent, ID, title, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX,size=(600,500))
        .......
        .......
        panel1 = wx.Panel(panel, wx.ID_ANY,size=(550,200),pos=(25,150))
        self.log = wx.TextCtrl(panel1, wx.ID_ANY, size=(550,200),style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)


    def PanelStatus(self,message):
        self.log.AppendText(message)

他の関数でself.PanelStatus("my text")を使用しました。

于 2013-03-28T09:38:05.510 に答える