python - 如何在 GUI 中嵌入外部窗口(Python + Glade + Gtk3)

标签 python gtk gtk3 glade

我开始使用 Glade、python 和 Gtk3 库构建 GUI。 我想尝试在我的 GUI 中查看将它链接到容器内的外部窗口。可能吗?哪个是执行此操作的最佳容器对象?

我开始搜索,但 Gtk2 中的简单方法(如 here )不能再在 Gtk3 中使用。

我发现了一个非常有趣的帖子 here这允许我设置目标窗口的正确 ID,但我仍然对如何在我的 GUI 中显示它感到困惑。

我试图改变一点但没有成功these tutorials与开罗。

到目前为止我的一段代码(我想在 map_area 容器中显示 ID = 0x360000b 的窗口,我必须使用“self.”句柄结构)。 map_area 容器暂时是一个 Drawingarea。

# if condition occurs    
    Gdk.Window.process_all_updates()
    win_id = 0x360000b # from xwininfo command
    root_win = GdkX11.X11Display.get_default()
    win = GdkX11.X11Window.foreign_new_for_display(root_win, win_id)
    width = win.get_width()
    height = win.get_height()   
    self.map_area = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)               
    pixbuf = Gdk.pixbuf_get_from_window(win, 0, 0, width, height)
    cr = cairo.Context(self.map_area)   
    Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0)
    cr.paint()

谁能帮帮我? 提前致谢!

最佳答案

听起来你想成为一个窗口管理器。查看有关如何编写窗口管理器的问题的答案,例如这个:

Creating a window manager for Linux

或者这个:

Building a Window Manager

祝你好运!

关于python - 如何在 GUI 中嵌入外部窗口(Python + Glade + Gtk3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38945451/

相关文章:

python - 在拼写测试中用 Python 标记不同等级的给定拼写

c - "->"在C编程、Gtk+编程中代表什么?

c - 为什么在 C 语言的 Ubuntu Linux 上 pango_layout_get_pixel_size 略有错误

python - 使用内省(introspection)绑定(bind)在 pycharm 中完成代码

python - 如何使用适合的图像和剖面图创建 Matplotlib 图?

python - Flask 运行 request.method 默认为 'POST' 而不是 'GET'

python - 使用 python 和 gtkTreeView 创建一个简单的文件浏览器

windows - 如何使用 Visual Studio 2019 构建 GTK+ 应用程序?

python - 使用 Python gtk3 在 X 上进行全局键绑定(bind)

python - django 'polls' 教程 - 从一个民意调查转到另一个民意调查