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__with调用它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 回答