使用C++后端使用Python GTK GUI前端

2024-05-23 22:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我有一些C++代码,现在正在为应用程序构建一个GUI。在过去,我使用Python和Pygtk进行GUI编程,偶尔链接到一些C++代码来做一些繁重的操作。我想继续这一趋势,但有一个问题是如何在这种情况下做到这一点。C++代码的一部分从照相机获取图像,我想在GUI上显示这些图像。我以前用过libvlc,可以把xid从DrawingArea传递给vlc来绘制视频。我也想做同样的事情,但似乎不知道如何使用xid。我对vlc代码做了一些研究,但还没有弄明白。我如何将Python中GTK小部件的XID传递给C++,并让C++代码在GTK小部件上画出一个图像?在


Tags: 代码图像应用程序gtk链接部件编程情况
1条回答
网友
1楼 · 发布于 2024-05-23 22:38:04

如果有绘图区域,可以执行以下操作:

#include <gdk/gdkx.h>

GtkWidget *drawing_area;
GdkWindow *window;
Window xid;

if (gtk_widget_get_realized (drawing_area)) {
    window = gtk_widget_get_window (drawing_area);
    xid = gdk_x11_window_get_xid (window);
}

然后你可以把xid传给你想要的任何东西。在

注意,widget只有在实现时才会创建窗口。所以,不要在绘图区域的“实现”信号发出之前执行上述操作。在

你需要把Python代码的绘图区域提供给C++代码。我不太了解pygtk的内部结构,所以这取决于您:)

相关问题 更多 >