【发布时间】:2016-05-06 04:45:58
【问题描述】:
目前我正在开发一个我想为其设置焦点链的 pyGTK3 应用程序。当使用下面的代码(简化版)时,会发生一些有趣的事情,GTK 正确地关注第一个按钮,但在 tab 上没有任何反应。
起初我以为这是 GTK 不知道链造成的,但后来我尝试 shift+tab 导致链的最后一个元素获得焦点哪个是对的。另一个 shift+tab 不会将焦点从最后一个按钮移开。
所以我认为他们的代码有问题,我需要手动更新链顺序吗?还是我遗漏了什么?
class Screen(Gtk.Grid):
def __init__(self, parent, core, video_widget):
Gtk.Grid.__init__(self)
# adds the control buttons
self.controls = load_controls(self)
self.set_focus_chain((self.controls.play, self.controls.backward, self.controls.recording))
【问题讨论】:
-
不应该在
parent或者root容器上设置链吗? -
我刚试过,结果证明为了设置链,我应该首先将
self的焦点链设置为仅包含container的列表(在这种情况下为控件),然后是按顺序显示按钮的 self 焦点链。所以我应该将它们堆叠起来以将 gtk 指向正确的方向。 @unwind 你能回答这个问题,以便我可以将其标记为正确答案吗?self.set_focus_chain([self.controls]) self.controls.set_focus_chain((self.controls.play, self.controls.backward, self.controls.recording, self.controls.end_inspection))
标签: python python-2.7 gtk gtk3