dem*_*ula 8 xlib python-3.x gtk3
我在版本3中丢失..在python2 + gdk2中是:
#!/usr/bin/env python2
import gtk
gtk.gdk.window_process_all_updates()
window_xid = 54525964
gdk_window = gtk.gdk.window_foreign_new(window_xid)
Run Code Online (Sandbox Code Playgroud)
这非常直截了当.但是,恐怖:
#!/usr/bin/env python3
from gi.repository import xlib
from gi.repository import Gdk
from gi.repository import GdkX11
Gdk.Window.process_all_updates()
xlib_window = "???????"
gdk_display = GdkX11.X11Display.get_default()
gdk_window = GdkX11.X11Window.foreign_new_for_display(gdk_display, xlib_window)
Run Code Online (Sandbox Code Playgroud)
xlib杀了我..我无法用它做任何事情.有没有人在使用它之前?
从xid获取窗口是在python2中获取屏幕截图的最快方法我想我会在python3中尝试另一种方式..任何想法?也许peek_children从根窗口?但是,我怎么知道它是否是我想要的窗口?
Ste*_*tef 12
WindowX11中的A 与a相同XID.从一个到另一个只有一个typedef.
所以在C代码中gdk_x11_window_foreign_new_for_display()只接受一个Window或者XID,它基本上是一个整数.这也适用于使用内省的python:
#!/usr/bin/env python3
from gi.repository import Gdk
from gi.repository import GdkX11
Gdk.Window.process_all_updates()
xlib_window = 0x2a00005 # from xwininfo command
gdk_display = GdkX11.X11Display.get_default()
gdk_window = GdkX11.X11Window.foreign_new_for_display(gdk_display, xlib_window)
print(gdk_window.get_geometry())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2771 次 |
| 最近记录: |