使用tkin的笔记本,灵活地将关键事件传递到当前选定的选项卡

2024-09-30 14:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,我无法将按键绑定到当前选项卡,因为它没有焦点。我想象我可以做一个bind_-all,然后它会调用tab的子函数。像这样的,

class A(Frame):
  ...
  def onSpacebar(self):
    <do something>

class B(Frame):
  ...
  def onSpacebar(self):
    <do something>


class Tabbed(Frame):
  def __init__(self, **kw):
    ...
    self.nb = Notebook(self)
    self.nb.add(A(nb), text=A.getTitle())
    self.nb.add(B(nb), text=B.getTitle())

    self.bind_all("<space>", self.onSpacebar)

  def onSpacebar(self,e=None):
    self.nb.select().child().onSpacebar() <---something equivalent

可以这样引用对象A或B吗

我知道有很多方法可以通过使用索引、保存A和B、使用DICT等来实现这一点

这是一个简单的示例。想象一下,如果有20个选项卡,根据某些参数,某些选项卡可能无法添加。因此,不依赖于选项卡名称或索引会更好。或者可能有更好的解决方案将空格键(或任何其他键)绑定到选项卡

谢谢


Tags: textselfaddbinddefalldoframe