0

次のコードを使用して、Nautilus デスクトップ ウィンドウと思われるものを取得できます。

screen = wnck.screen_get_default()
while gtk.events_pending():
    gtk.main_iteration()
for window in screen.get_windows():
    if window.get_name() == 'x-nautilus-desktop':
        xid = window.get_xid()
        wrapped_window = gtk.gdk.window_foreign_new(xid)

しかし、wrapped_window.add() を実行しようとすると、Window オブジェクトに add メソッドがないというエラーが表示されます。

誰かがhttp://www.youtube.com/watch?v=NOlIfhXQX9gで効果をデモしているYouTubeビデオをすでに持っているので、これができることはわかっていますが、背景ウィンドウを取得してウィジェットを配置する方法がわかりませんそれ。

誰でもそれを行う方法を知っていますか?

4

1 に答える 1

0

あなたは混同していますgtk.Windowgtk.gdk.Window。それらは同じではありません。前者はトップレベルのデスクトップウィンドウであり、GTKウィジェットのコンテナーとして機能します。後者は、画面の領域を抽象化したものであり、その上に描画することができ、コンテナではありません。

libwnckを使用してアプリケーションのGTKウィジェットを取得することはできません。希望する効果を実現する方法はわかりませんが、デスクトップを管理するのはウィンドウマネージャーであるため、ウィンドウマネージャーの拡張についてさらに検討する必要があると思います。

于 2011-05-19T05:45:13.067 に答える