gpt4 book ai didi

Python,如何从另一个类中调用实例方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:29 26 4
gpt4 key购买 nike

我有一个带有框架的 Python GUI,该框架有一个上部面板和一个垂直拆分窗口。对于 splitterwindow 中的每个面板,我创建了两个面板类,一个带有列表框,另一个带有网格。每个类都有几个按钮。

有没有办法让按钮连接 event.bind 和类内的函数代码并使其工作,因为,目前我收到以下错误:

AttributeError: 'Panel' object has no attribute 'm_dirPicker1'

我想知道在所报告的情况下哪种是最佳做法。

这是我所写内容的一个简短示例:

class Frame ( wx.Frame ):
...
self.m_datapanel = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
self.m_filespanel = Source_Panel( self.m_splitter1)
self.m_gridpanel = Data_Viewer( self.m_splitter1)

class Source_Panel ( wx.Panel ):
...

# Connect Events
self.m_listBox.Bind( wx.EVT_LISTBOX_DCLICK, self.m_listBoxOnListBoxDClick )
self.m_clearbutton.Bind( wx.EVT_BUTTON, self.m_clearbuttonOnButtonClick )
self.m_importbutton.Bind( wx.EVT_BUTTON, self.m_importbuttonOnButtonClick )
self.m_showdata.Bind( wx.EVT_BUTTON, self.m_showdataOnButtonClick )

def __del__( self ):
pass

# Virtual event handlers, overide them in your derived class
def m_listBoxOnListBoxDClick( self, event ):
event.Skip()

def m_clearbuttonOnButtonClick( self, event ):
event.Skip()

def m_importbuttonOnButtonClick( self, event ):
src_directory = frame.m_datapanel.m_dirPicker1.GetTextCtrlValue()

def m_showdataOnButtonClick( self, event ):
event.Skip()


class Data_Viewer ( wx.Panel ):
...

最佳答案

我假设您的 Source_Panel 实例将是 MyFrame 实例的子级(我将引用您的 Frame code> 为 MyFrame 以避免与 wx.Frame 基类混淆)。

在这种情况下,Source_Panel 实例的 Parent 属性应引用父级 MyFrame

然后你可以调用:

self.Parent.m_datapanel.m_dirPicker1.GetTextCtrlValue()

关于Python,如何从另一个类中调用实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com