Я довольно новый на обоих Python
и wxPython
. Во всяком случае, после того, как я последовал официальному руководству, где они объясняют, как сделать основной текстовый редактор, я решил продолжить и написать настоящий текстовый редактор.Как определить щелчок мышью на пользовательской wx.Panel?
Теперь мой текстовый редактор состоит из MainWindow
(который наследуется от wx.Frame
), который, в свою очередь, содержит Notebook
(унаследовав от wx.Notebook
), который, в свою очередь, содержит несколько вкладок (пользовательский класс наследует от wx.Panel
).
Если я не понял, события в wxPython
могут быть обнаружены и ограничены конкретными объектами с помощью функции Bind()
.
Вот мой пользовательский класс панели:
class TabContent(wx.Panel) :
def __init__(self, parent) :
# Calls the constructor for wx.Panel
wx.Panel.__init__(self, parent = parent, id = wx.ID_ANY)
# Creates a vertical sizer
sizer = wx.BoxSizer(wx.VERTICAL)
# Creates an empty multiline wx.TextCtrl
textArea = wx.TextCtrl(self, style = wx.TE_MULTILINE)
# Adds the text area to the sizer
sizer.Add(textArea, 1, wx.EXPAND | wx.ALL, 2)
# Sets the previously created sizer as this panel's sizer
self.SetSizer(sizer)
# Sets up events
self.Bind(wx.EVT_RIGHT_DOWN, self.onMouseLeftClicked)
def onMouseLeftClicked(self, event) :
print("Left button of the mouse was clicked\n")
Я хотел бы быть в состоянии обнаружить щелчок правой кнопки мыши на самой вкладке (например, я мог бы открыть меню или просто напечатать что-то для ради тестирования функций wxPython). Однако щелчок мышью ничего не печатает. Любая идея почему?
Кстати, я на ArchLinux, используя PyCharm Community Edition 2016.2.3, Python 3.5.2 и wxpython 3.0.2.