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

时间:2016-08-18 07:25:33

标签: python tkinter tabs bind

据我所知,我无法将按键绑定到当前标签,因为它没有获得焦点。我想象我可以做一个bind_all然后它会调用标签的孩子中的一个函数。像这样的东西,

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,使用dicts等来实现这一目标。

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

感谢。

0 个答案:

没有答案