コールバックを間違ってバインドしています。現在の操作を行います。
self.Bind (wx.EVT_TREE_ITEM_ACTIVATED, self.OnAdd, id=10)
しかし、3番目のパラメータはsource
です。 id
は4番目のパラメータです。だから、このように変更します。
self.tree = wx.TreeCtrl(self, size=(200,100)) # Or however you defined it
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnAdd, self.tree, id=10)
この方法では、あなたのOnAdd
機能になりますevent
引数がGetItem
方法が利用可能になりますtree
インスタンスになります。
全例:
import wx
class TreeExample(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Tree Example', size=(200, 130))
self.tree = wx.TreeCtrl(self, size=(200, 100))
root = self.tree.AddRoot('root')
for item in ['item1', 'item2', 'item3']:
self.tree.AppendItem(root, item)
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivated, self.tree)
self.tree.Expand(root)
def OnActivated(self, evt):
print 'Double clicked on', self.tree.GetItemText(evt.GetItem())
app = wx.PySimpleApp(None)
TreeExample().Show()
app.MainLoop()
出典
2011-10-25 14:13:30
jro
はまだ同じエラー:( –
@Arashをwork.gavesしません:それは私の作品:)。私はあなたに試してみるための完全な例を加えました。 – jro
ありがとうございましたupdate.Itは私のためだけでなく、私の元のコードのexample.but私は正確な変更を行ったときに私のために実行されます。その理由は、頭痛 –