如何使用python-xlib获取小部件/窗口的文本?

时间:2013-11-23 07:02:54

标签: python xlib

我正在尝试在gedit窗口中找到当前正在编辑的整个文本。首先,我试图通过使用Xlib.display找出当前焦点的gedit选项卡。现在我有一个Xlib.display.window对象。现在我想使用这个窗口对象找出该特定窗口/窗口小部件中的文本

我的代码就像这样

import gtk, gobject, Xlib.display
currentFocus=''
def current_focused:
     global currentFocus
     display = Xlib.display.Display()
     window = display.get_input_focus().focus
     wmname = window.get_wm_name()
     wmclass = window.get_wm_class()
     if wmclass is None and wmname is None:
           window = window.query_tree().parent
           wmname = window.get_wm_name()
           if currentFocused!=wmname:
                   if window.get_wm_class()[0]=='gedit':
                          print "\nNow you are in : < %s >" % (wmname,)
                          # Here i have to find the text of the gedit's widget
      currentFocused=wmname
      return True
gobject.timeout_add(1000, current_focused)
gtk.main()

是否有任何API可以使用Xlib.display.window获取特定小部件的文本 请帮我。我在这个领域是全新的

谢谢

1 个答案:

答案 0 :(得分:0)

WM_CLASS / WM_NAME属性仅用于向窗口管理器提供信息(因此WM前缀),通常不在子窗口上设置。如果编辑窗口小部件设置了类似的属性,请检查GTK source code,但通常外部进程无法读取编辑控件文本