Привет, ребята. Я пытаюсь выучить программирование GUI с помощью wxPython на Python 3.X
Я пытаюсь захватить двойной щелчок на wxDataViewListCtrl.Для тестирования я добавил кнопку и список просмотра данных и установил обработчик событий двойного щелчка для обоих объектов.То же самое показано в приведенном ниже сценарии
Когда я дважды щелкаю по кнопке-контролю, я могу видеть оператор печати на экране, но когда я дважды щелкаю по списку-просмотру данных, обработчик событий невыполняется
Ни одно из событий wxWindow не работает для wxDataViewListCtrl.Что я делаю не так?
import wx
import wx.xrc
import wx.dataview
class MyFrame1 ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
gSizer1 = wx.GridSizer( 2, 1, 0, 0 )
self.m_button1 = wx.Button( self, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0 )
gSizer1.Add( self.m_button1, 0, wx.ALL, 5 )
self.m_dataViewListCtrl2 = wx.dataview.DataViewListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
gSizer1.Add( self.m_dataViewListCtrl2, 0, wx.ALL, 5 )
self.SetSizer( gSizer1 )
self.Layout()
self.Centre( wx.BOTH )
# Connect Events
self.m_button1.Bind( wx.EVT_LEFT_DCLICK, self.button_double_click )
self.m_dataViewListCtrl2.Bind( wx.EVT_LEFT_DCLICK, self.listview_double_click )
def __del__( self ):
pass
# Virtual event handlers, overide them in your derived class
def button_double_click( self, event ):
print("button_double_click")
event.Skip()
def listview_double_click( self, event ):
print("listview_double_click")
event.Skip()
app = wx.App()
frame = MyFrame1(None)
frame.Show()
app.MainLoop()