0

QWindow::fromWinIDQt の関数を使用して、ウィジェットを外部ウィンドウに描画したいと考えています (これでうまくいくことを願っています)。

残念ながら、特定の名前/クラスを持つウィンドウに描画する必要があります (xwininfo と xprop を使用して表示できます)。これを行うための唯一のコードは xwininfo と xprop のソース内にありますが、単純なことを行うには不要なコードの集まりのように思えます: 特定のプロパティが文字列に等しいウィンドウを見つけ、そのウィンドウ ID を返します。 Qtが使用するため。残念ながら、私は XCB に非常に精通しておらず、開始方法がわかりません。

200行のコードなしでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

これを行うための唯一のコードは、xwininfo と xprop のソース内にあります。

これは、xdotool と並んで本当に優れたリソースです。

特定の文字列に等しい特定のプロパティを持つウィンドウを見つける

ええ、でもこれを行う X11 組み込みはありません。そのため、これらのツールはそのようになります。次に、ウィンドウ マネージャーの再親化と非再親化のような考慮事項があります。つまり、クライアント ウィンドウに降りる必要があるかどうかなどです。

これほど簡単な方法はないのではないかと心配しています。低レベルの X プログラミングは、Xlib であれ XCB であれ、いくらか冗長になります。

考えられることの 1 つは、 から抽出された (およびによって使用される) というライブラリを使用することxdotoolですlibxdo。でこの機能を提供しますxdo_search_windows。ただし、ライブラリは XCB ではなく Xlib を使用します (したがって、プルインします)。

コンパイルできるサンプルプログラムは次のgcc -lxdo test.cとおりです。

#include <xdo.h>

int main() {
    xdo_t *xdo = xdo_new(NULL);
    xdo_enter_text_window(xdo, CURRENTWINDOW, "A", 0);
    return 0;
}
于 2016-05-15T17:31:28.027 に答える