wxpython listctrl onclickイベント
-
27-10-2019 - |
質問
そのため、データの行を含むwxpython listctrlがあります。クリックした場合に行の1つが行われたときに、行の内容を使用して関数を呼び出すイベントを作成するにはどうすればよいですか?
解決
使用できます Bind
メソッドをイベントに結合する機能。例えば、
import wx
class MainWidget(wx.Frame):
def __init__(self, parent, title):
super(MainWidget, self).__init__(parent, title=title)
self.list = wx.ListCtrl(parent=self)
for i,j in enumerate('abcdef'):
self.list.InsertStringItem(i,j)
self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClick, self.list)
self.Layout()
def OnClick(self, event):
print event.GetText()
if __name__ == '__main__':
app = wx.App(redirect=False)
frame = MainWidget(None, "ListCtrl Test")
frame.Show(True)
app.MainLoop()
このアプリは、アクティブ化されているlistctrlにアイテムを印刷します(Enterを押すかダブルクリックすることにより)。シングルクリックイベントをキャッチしたい場合は、使用できます wx.EVT_LIST_ITEM_SELECTED
.
重要な点は、 Bind
関数特定のイベントが発生したときに呼び出される方法を指定します。 WXPYTHONのセクションを参照してくださいガイド イベント処理. 。また、ドキュメントを参照してください listctrl ウィジェットが使用するイベントの場合。
所属していません StackOverflow