2013-02-03 15 views
5

私はデスクトップを書いています。私は既にQtとGTK +の基本をPythonで知っていますが、完成したデスクトップを表示する方法はわかりません。どのようにそれをウィンドウマネージャのルートウィンドウにしますか、それとも私が慣れていないデスクトップを表示する方法はありますか?デスクトップデスクトップウィンドウを作成していますか?

+0

このコマンドをチェックしてください: 'wmctrl -k on'。 WMがそのような機能をサポートしている場合は、「デスクトップ」が表示されます。したがって、コマンドを追跡すると(おそらくWMに)、デスクトップがどのように定義されているかを知ることができます。 –

+0

本当にシンプルなウィンドウマネージャであるブラックボックスのコード(http://sourceforge.net/projects/blackboxwm/)を見ることができます。 –

答えて

1

あなたはそれをルートウィンドウにしません。 Xには変更できない1つのルートウィンドウがあります。あなたは

  • Xルートウィンドウ

やりたいことにはいくつかの方法がありますが古い方法は、デスクトップだけで、標準的なXのルートウィンドウということでした。アイコンは、境界のない個々のウィンドウだけでした。

  • デスクトップウィンドウ

今、ほとんどのシステムでは、大きなウィンドウを開き、デスクトップウィンドウとしてそれをマーク。ほとんどのウィンドウマネージャーは、他のウィンドウの上にそれを上げないことを知っています。 Xルートウィンドウはまだその背後にありますが、隠されています。つまり、このウィンドウで必要なことをしたり、描画したり、アイコンやウィジェット、またはツールキットが実行できるその他のものを含めることができます。

Gtk +を使用している場合、関連情報はGdkWindowTypeHint列挙型、具体的にはGDK_WINDOW_TYPE_HINT_DESKTOPにあります。ドキュメントはここで見つけることができます:GdkWindow

  • コンポジ

しかし、コンポジオーバーレイウィンドウと呼ばれるGnome3またはUnityの使用、のようにデスクトップの新しい方法があります。コンポジットが実行されているときは、システム上のすべてのウィンドウをカバーするオーバーレイウィンドウがあります。このオーバレイ上のウィンドウの実際の内容を描画するのは、コンポジタリの責任です。しかし、オーバーレイは、このオーバレイウィンドウに望むものを描くことができます。たとえば、Gnome3では、ウィンドウセレクタに入り、ウィンドウがグリッドに配置されますが、ウィンドウは実際には移動したり縮小したりすることはありません。コンポジターは、そのように描画することに決めました。実際には、ウィンドウは以前と同じ位置にありますが、このオーバーレイの下に隠れています。

これは非常に高度なやり方であり、初心者向けの開発者にとっては間違いありません。おそらく、第2の方法に集中したいと思うでしょう。

+0

Qtベースのソリューションはありますか? – Christopher

+0

私はそう思います。あなたはそれらに尋ねる必要があるだろう – iain

関連する問題