Я новичок как в Python
, так и в wxPython
. Как бы то ни было, следуя официальному руководству, в котором объясняется, как сделать базовый текстовый редактор, я решил пойти дальше и написать настоящий текстовый редактор.
Теперь мой текстовый редактор состоит из 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.