私はPython
とwxPython
の両方でかなり新しいです。とにかく、基本的なテキストエディタを行う方法を説明する公式のチュートリアルに従った後、私は先に進んで実際のテキストエディタを書くことにしました。順番にいくつかのタブ(wx.Panel
から継承したカスタムクラス)が含まれていカスタムwx.Panelのマウスクリックを検出するにはどうすればよいですか?
さて、私のテキストエディタは、順番に(wx.Notebook
から継承)Notebook
が含まれています(wx.Frame
から継承)MainWindow
、から構成されています。
私が誤解していない場合、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関数のテストのために)。ただし、マウスでクリックしても何も印刷されません。どんな考え?
ところで、PyCharm Community Edition 2016.2.3、Python 3.5.2、wxpython 3.0.2を使用してArchLinuxを使用しています。