2

Lablgtk には、(少なくとも) 3 種類のウィンドウ名付きモジュールがあります。

  • Gdk.ウィンドウ
  • GtkWindow
  • Gウィンドウ

それらの違いは何ですか?どうすれば別の場所に移動できますか?

4

1 に答える 1

1

GTK はもともと X11 システム用でした。X11 では、「ウィンドウ」は、描画してイベントを選択できる長方形の領域です。画面全体の上部にある「ルートウィンドウ」を使用して、ツリーにネストできます。AGdk.windowは X11 ウィンドウの薄いラッパーですが、X11 以外のバックエンドをサポートするのに十分抽象的です。

GTK ウィンドウは、ユーザーがウィンドウと考えるものです。タイトルや境界線などを含むサイズ変更可能な画面領域です。実際、これはおそらく、タイトルと境界線を含むウィンドウ マネージャーによって提供される X11 ウィンドウと、別の X11 ウィンドウです。コンテンツ領域のウィンドウ。この内部ウィンドウには、サブウィンドウ (各ボタンに 1 つなど) が含まれる場合があります。しかし、最近の GTK は通常、サブウィンドウを気にせず、ちらつきを避けるためにすべてを自分で管理していると思います。

AGtk.window Gtk.objは、GTK C ライブラリによって提供される C オブジェクトを表します。C ライブラリによって公開されている関数は、 で使用できますGtkWindow.Window

ただし、C オブジェクトは通常、オブジェクトGWindow.window指向 OCaml API を提供するためにクラスによってラップされます。

gtk_window#misc#windowから GDK ウィンドウを取得するために使用しますGWindow.window

于 2015-04-25T12:27:28.550 に答える