我有一个Notebook
类,其中包含一些标签/页面(继承自wx.Panel
)。
我目前在Notebook
课程中检测到右键单击,一切正常。唯一的问题是,当我右键单击它时,我想将焦点设置在特定选项卡上。
我该怎么做?我能做到的唯一方法就是左键单击它。
TabContent 类:
class TabContent(wx.Panel) :
def __init__(self, parent, id) :
# Calls the constructor for wx.Panel
wx.Panel.__init__(self, parent = parent, id = id)
# Creates a vertical sizer
sizer = wx.BoxSizer(wx.VERTICAL)
# Creates an empty multi-line 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)
笔记本类:
class Notebook(wx.Notebook) :
def __init__(self, parent) :
wx.Notebook.__init__(self, parent, id = wx.ID_ANY, style = wx.BK_DEFAULT)
# Initialises tab number to 1
self.untitledCounter = 1
# Adds an empty tab
self.addTab()
# Sets up events
self.Bind(wx.EVT_RIGHT_DOWN, self.onMouseRightClicked)
def onMouseRightClicked(self, event) :
print("Left button was clicked on tab " + str(self.GetCurrentPage().GetId()))
答案 0 :(得分:-1)
@迈克尔,
尝试在页面的事件处理程序中调用SetFocus()。
答案 1 :(得分:-1)
您可以使用笔记本电脑的HitTest
方法找到点击的标签,然后如果您希望激活该标签,则可以调用笔记本电脑的SetSelection
方法