Аз съм доста нов както в 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.