4

私はいくつかのC++コードを持っており、現在、アプリケーション用のGUIを構築しています。過去には、GUIプログラミングにpythonとpygtkを使用し、ときどきC++コードにリンクして手間のかかる作業を行っていました。その傾向を継続したいと思いますが、この場合の方法について1つ質問があります。C ++コードの一部はカメラから画像を取得し、それらの画像をGUIに表示したいと思います。私は過去にlibvlcを使用しましたが、xidをDrawingAreaからvlcに渡してビデオを描画することができました。同じことをしたいのですが、xidの使い方がわからないようです。私はvlcコードを少し調べましたが、まだ理解していません。PythonのgtkウィジェットのxidをC++に渡し、C ++コードでgtkウィジェットに画像を描画するにはどうすればよいですか?

4

1 に答える 1

0

描画領域がある場合は、次のことができます。

#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 を渡すことができます。

ウィジェットは、実現されたときにのみウィンドウが作成されることに注意してください。したがって、描画領域の「実現」信号が発せられる前に上記を実行しないでください。

Python コードの描画領域を C++ コードで使用できるようにする必要があります。私はpygtkの内部をよく知らないので、それはあなた次第です:)

于 2013-02-14T15:07:21.967 に答える