wxPython - 按钮

wxPython - button

这是我的代码:

for i in posortowane:
    z += 20
    result = '%s: %s' % (i[0], i[1])
    wx.StaticText(panel, -1, result, (345, 125 + z), style=wx.ALIGN_CENTRE)
    btn4 = wx.Button(panel, -1, u"Remove", (485, 120 + z))
    self.Bind(wx.EVT_BUTTON, self.Rem, btn4)

有 2 个按钮一个在另一个下面。他们调用 Rem 函数:

def Rem(self, i):
    print i

我想在单击按钮时从 'posortowane' 写入 'i'。它不起作用。我试过了:

self.Bind(wx.EVT_BUTTON, self.Rem(i), btn4)

但它在我单击按钮之前调用了 Rem 函数。我怎样才能做到这一点?我为我的英语感到抱歉。感谢您的帮助。

当您添加括号时,您是在告诉解释器立即调用该函数。
要传递参数而不立即调用回调,您应该使用 lambda.

self.Bind(wx.EVT_BUTTON, lambda evt, i: self.Rem(evt,i), btn4)