目前我正在开发一个我想设置焦点链的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))
答案 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只允许聚焦链对儿童,因此要求用户设置一系列焦点链,将焦点链设置为大孩子。