PythonGTK 3.0:怎么在笔记本中抓住焦点

本教程将介绍PythonGTK 3.0:如何在笔记本中抓住焦点的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

PythonGTK 3.0:怎么在笔记本中抓住焦点 教程 第1张

问题描述

我正在尝试将焦点设置为Entry输入域。如果我把它放在Box中,我可以通过grab_focus方法设置焦点。但如果Entry位于Notebook内,则表示它未聚焦。

示例代码:

import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk


class MyWindow(Gtk.Window):
 def __init__(self):
  Gtk.Window.__init__(self, title="Simple Notebook Example")
  self.set_border_width(3)

  self.notebook = Gtk.Notebook()
  self.add(self.notebook)

  self.page1 = Gtk.Box()
  self.page1.set_border_width(10)
  self.page1.add(Gtk.Label(label="Default Page!"))
  self.notebook.append_page(self.page1, Gtk.Label(label="Plain Title"))

  self.note = Gtk.Entry()
  self.note.set_activates_default(True)
  self.note.set_text("")
  self.page1.add(self.note)

  self.page2 = Gtk.Box()
  self.page2.set_border_width(10)
  self.page2.add(Gtk.Label(label="A page with an image for a Title."))
  self.notebook.append_page(
self.page2, Gtk.Image.new_from_icon_name("help-about", Gtk.IconSize.MENU)
  )

  self.note.grab_focus()  # does not work


win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

怎么在笔记本内聚焦self.note

谢谢您的帮助!

推荐答案

因为它turns out,您只能将焦点抓取到可见的小工具。

show_all之后调用grab_focus可使示例正常工作:

win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
win.note.grab_focus()
Gtk.main()

好了关于PythonGTK 3.0:怎么在笔记本中抓住焦点的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。