GTK:如何在开始时从元素中移除焦点

时间:2017-09-11 10:57:31

标签: gtk

我在应用程序中添加了两个GtkEntry,现在当我启动应用程序时,其中一个有焦点,看起来已经准备好进行编辑了。 Dot不希望任何焦点放在开头的任何元素上,也不希望任何文本输入元素具有焦点或被编辑。我只是希望他们显示他们的文本,然后如果用户想要更改他们,他点击/标签到它,然后输入文本,然后点击进入,它返回到相同的状态。(没有突出显示,或其他)

2 个答案:

答案 0 :(得分:0)

初始化窗口后,在您喜欢的任何小部件上使用Gtk.Widget的grab_focus()方法

答案 1 :(得分:0)

我在第一个条目中遇到了同样的问题。 我的解决方案是添加一个虚拟条目作为第一个条目并将其隐藏,因此虽然它获得了焦点,但它是不可见的:

self.v1 = Gtk.VBox()
self.dummy_field = Gtk.Entry()  # workaround for focus of first entry
self.entry1 = Gtk.Entry('1')
self.entry2 = Gtk.Entry('2')

self.v1.pack_start(self.dummy_field, False, False, 0)
self.v1.pack_start(self.entry1, False, False, 0)
self.v1.pack_start(self.entry2, False, False, 0)

...
...

self.window.add(self.v1)
self.window.show_all()
self.dummy_field.hide() # dummy entry is hidden
Gtk.main()