に基づくカスタム Gtk# ウィジェットを実装していGtk.EventBox
ます。に挿入するとき、HBox
またはメソッドVBox
によって返される正確なサイズを占有しOnSizeRequested
ます。
親ボックス、ウィンドウ、またはウィジェットによって与えられたすべてのスペースを占めるようにウィジェットを作成するにはどうすればよいですか? HBoxと同じように。
GTK+2 と GTK+3 で推奨されるパッキング方法には、わずかな違いがあります。GTK+ では、通常、a のexpand
およびfill
プロパティを使用して、GtkBox
スペースの割り当て方法を制御します。GTK+3 では、 、 、 のユーザーを提案しvertical-expand
てhorizontal-expand
いvertical-fill
ますhorizontal-fill
。
パッキングがどのように機能するかを理解する良い方法は、 Gladeでフィルとエキスパンドのプロパティを 操作して、リアルタイムで効果を確認することです。古いチュートリアル (少し古くなっています) は、さまざまなパッキング プロパティのスクリーンショットを示しています: How_Packing_Effects_the_Layout
ウィジェットを開発していると、ウィジェットのユーザーが、ウィジェットをより大きな UI にどのようにパックするかを決定する可能性が高くなります。ただし、ウィジェットが (他のウィジェットから構築された) 複合ウィジェットである場合は、他のウィジェットを適切にパックする必要があります。
PackStart と PackEnd には、ボックスを埋めるために展開する項目を指定するための fill パラメーターがあります。おそらく PackStart(widget, true, true, 0); が必要です。