У меня есть класс Notebook
с некоторыми вкладками/страницами (наследующий от wx.Panel
).Как сфокусировать страницу wx.Notebook при прямом нажатии на нее
В настоящее время я определяю правосторонний щелчок в пределах класса 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)
Notebook класс:
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()))
Как? Я хочу сфокусировать его, когда я нажимаю на него правой кнопкой мыши, но я уже пробовал, и он не работает. Единственный «рабочий метод» для меня - это щелчок левой кнопкой мыши по вкладке, затем он выбирается и, конечно, фокус на нем. Есть ли способ сделать это, щелкнув правой кнопкой мыши? Есть функция, которая, как только я нажимаю на мышь, получает объект под координатами курсора, например? – Michael
@ Майкл, поэтому у вас есть wxNotebook с некоторыми страницами. Можно выбрать только одну страницу за раз. IIUC, вы хотите сделать правый щелчок на заголовке страницы и сделать эту страницу для выбора. Я прав? Что делать, если я делаю левый клик по тому же заголовку страницы? – Igor
Да, вы правы. Если вы делаете левый щелчок, он выбирается, но я хочу, чтобы пользователь мог щелкнуть правой кнопкой мыши на вкладке; это откроет всплывающее меню с некоторыми параметрами, такими как «Закрыть», «Закрыть все» и т. д. Конечно, мне нужно каким-то образом определить вкладку, на которую я нажал. Например, в _medit_, если вы щелкните правой кнопкой мыши на вкладке, он не будет сфокусирован, но вы можете закрыть его. – Michael