wxpython 获取当前选择的笔记本标签文本(而非索引)

0 投票
1 回答
3025 浏览
提问于 2025-04-17 11:10

我有一个 EVT_NOTEBOOK_PAGE_CHANGED 函数,用来提醒我当标签页发生变化时,但我只能获取到笔记本标签的索引:

self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.eventntbkParameters, self.ntbkParameters)

&

page = self.ntbk.GetSelection()
print page

我觉得这样判断哪个标签被选中并不太安全,因为如果将来添加了额外的标签,索引可能会被重新排列。有没有办法直接获取标签的名称呢?

谢谢

1 个回答

2

你想要用 ntbk.GetPageText(evt.GetSelection()) 这个代码来获取页面的文本。

class MyNotebook(AuiNotebook):
  def __init__(self, parent, id, *args, **kwds): #@ReservedAssignment
    AuiNotebook.__init__(self, parent, id, *args,
      style = NO_BORDER | AUI_NB_CLOSE_ON_ALL_TABS | AUI_NB_TAB_SPLIT, **kwds)

    self._tabs = ['Jobs', 'Devices', 'Actions', 'Transforms']

    self.Bind(EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnPageClosed)

  def OnPageClosed(self, evt):
    page = self.GetPageText(evt.GetSelection())

撰写回答