나는 Python
과 wxPython
에서 꽤 새로운입니다. 어쨌든, 기본 텍스트 편집기를 수행하는 방법을 설명하는 공식 자습서를 수행 한 후에는 실제 텍스트 편집기를 작성하기로 결정했습니다. 어떻게 사용자 정의 wx.Panel에서 마우스 클릭을 감지 할 수 있습니까?
Notebook
차례로 여러
탭을 (사용자 정의 클래스가
wx.Panel
에서 상속) 포함하는 (
wx.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를 사용하고 있습니다.