1

gtk.Window オブジェクトに、「アイコン化」や「デスクトップの表示」などの Window Manager の表示/非表示コマンドを強制的に無視させる方法はありますか?

デスクトップが公開されたときに他のすべてのウィンドウで消えることのない、デスクトップに固定された永続的なウィンドウを作成しようとしています。

編集:私が具体的に疑問に思っているのは、PyGTK を使用して、ドック、デスクトップ ウィジェット、システム トレイなどのアプリケーションで見られる動作を再現できるかどうかだと思いますか?

4

5 に答える 5

2

あなたはそれを逆に持っています。コマンドを送信してウィンドウを最小化するようにウィンドウマネージャーに指示するのではありません。ウィンドウマネージャーはウィンドウを所有しています。ウィンドウのマッピングを停止したい場合は、ウィンドウに許可を求めることなく、それを実行します。

したがって、答えは「いいえ」だと思います。

于 2009-04-21T07:21:36.747 に答える
1

に設定してみてGdkWindowTypeHintくださいGtkWindow

gtk_window_set_type_hint(the_window, GDK_WINDOW_TYPE_HINT_UTILITY);

ウィンドウをポケットベルやタスクバーに表示せず、すべてのデスクトップに表示させるには、さまざまな方法があります。この動作はすべて、ウィンドウマネージャーからのサポートに依存することに注意してください。本当に古いものを使用しない限り、これは問題にはなりません。

于 2009-04-23T22:03:24.740 に答える
1

ウィンドウ タイプのヒントのリストから、[デスクトップの表示] ボタンをクリックすると表示されるのは次の 2 つだけです。

  • gtk.gdk.WINDOW_TYPE_HINT_DESKTOP
  • gtk.gdk.WINDOW_TYPE_HINT_DOCK

これらは両方とも、ウィンドウの装飾を失う (つまり、境界線やタイトルバーがない) 原因となるため、移動/サイズ変更はアプリ次第です。DESKTOP を指定すると、ウィンドウは常に他のウィンドウの後ろに表示されます。DOCK を指定すると、常に前面に表示されます。

SPLASHSCREEN を選択すると、[デスクトップを表示] をクリックすると非表示になる装飾のないウィンドウが表示されます。

ユーザーが「デスクトップを表示」をクリックしたときにまだ表示される、ボーダレスで動かないウィンドウが必要な場合は、次を使用します。

window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)

window.show() を呼び出す前に。ウィンドウが表示されると、そのタイプを変更することはできません。

于 2013-10-08T18:07:54.703 に答える
0

gtk_window_set_type_hint(window, GDK_WINDOW_TYPE_HINT_SPLASHSCREEN)はあなたが望むものだと思います。それもGDK_WINDOW_TYPE_HINT_DOCKそうですが、ウィンドウはすべての上にとどまり、元に戻すことはできません。

于 2011-03-29T14:23:44.253 に答える
0

「これがこれを行う方法です」という回答を受け取っておらず、もう少し調査を行った結果、私の知る限り、PyGTK でこの種の機能を実現する簡単な方法はないと言えます。最良のオプションは、ウィンドウ マネージャーのヒントを設定し、それを WM に任せて (できれば) やりたいことを実行することです。

于 2009-06-23T02:40:24.667 に答える