我正在尝试使用类外部的wx元素来做一些事情:

def doStuff(uselessVariableIsUseless):
    myListbox.Set(myList)

class myWindow(wx.Frame):
    def __init__(self, parent, id):
        myListbox = wx.ListBox(parent = self, pos = (320, 30), size = (300, 500))


我也尝试过在def __init__()中全球化myListbox,并使用myWindow.myListbox等,但是我仍然得到NameError: global name 'myListbox' is not defined。什么是正确的方法?

最佳答案

您需要分配给self.myListbox以使其成为实例的属性。然后,您可以将实例传递给doStuff方法并通过<object>.myListbox访问它:

def doStuff(win):
    win.myListbox.Set(myList)

class myWindow(wx.Frame):
    def __init__(self, parent, id):
        self.myListbox = wx.ListBox(parent = self, pos = (320, 30), size = (300, 500))

my_win = myWindow(0, 0)
doStuff(my_win)

关于python - 在类外使用wxPython元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12847927/

10-14 19:06