0
我在Python
和wxPython
上都很新穎。無論如何,在遵循官方教程,他們解釋瞭如何做一個基本的文本編輯器之後,我決定繼續編寫一個真正的文本編輯器。如何檢測鼠標點擊自定義wx.Panel?
現在,我的文本編輯器由一個MainWindow
(從wx.Frame
繼承),又包含一個Notebook
(從wx.Notebook
繼承),又包含幾個標籤(自定義類從wx.Panel
繼承)的。
如果我沒有誤解,可以通過Bind()
函數檢測wxPython
中的事件並將其綁定到特定對象。
這裏是我的自定義面板類:
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社區版2016.2.3,Python 3.5.2和wxpython 3.0.2。