GTK焦点链

时间:2016-01-28 17:12:15

标签: python python-2.7 gtk gtk3

目前我正在开发一个我想设置焦点链的pyGTK3应用程序。当使用下面的代码(简化版本)时,一些有趣的事情GTK正确地聚焦在第一个按钮上,但在选项卡上没有任何反应。

起初我以为这是由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))

1 个答案:

答案 0 :(得分:1)

为了在容器内设置元素的焦点链,首先需要将父节点的焦点链设置到容器中。从那里需要设置容器的焦点链。

因此代码需要如下:

        <form>
    <br>input textbox:        <input id = "textbox" type = "text"    name="textbox" required>
    </td>
    </td>
    </table>
    <table>
    <tr><td>
    <br>
    <p id="para">label1</p>
    <br>textbox1:     <input id = "tb1"  type = "text"    name = "tb1" required>
    <br>textbox2:     <input id = "tb2"   type = "text"    name = "tb2"  required>
    <br>textbox3:     <input id = "tb3"   type = "text"    name = "tb3"  required>
    </td>
    <td><br><br><br><br><p id="paraa">label2</p>
    <br>textbox4:     <input id = "tb4"   type = "text"    name = "tb4" readonly>
    <br>textbox5:     <input id = "tb5"    type = "text"    name = "tb5"  readonly>
    // result
    <br>textbox5:     <input id = "tb6"   type = "text"    name = "tb6" readonly>
    </td></tr>
    </form>

因此,似乎GTK只允许聚焦链对儿童,因此要求用户设置一系列焦点链,将焦点链设置为大孩子。