Monodevelop を使用して GUI を作成しています。MainWindow 内に含まれる HBox 内にネストされた多数のウィジェットが既にあります。ただし、メニューバーを一番上に配置するには、VBox を追加する必要があります。私の質問は、MonoDevelop で VBox を既存の HBox の親として追加するにはどうすればよいですか?
VBox をウィンドウにドラッグしても何も起こらず、メニュー オプションが見つかりません。
Monodevelop を使用して GUI を作成しています。MainWindow 内に含まれる HBox 内にネストされた多数のウィジェットが既にあります。ただし、メニューバーを一番上に配置するには、VBox を追加する必要があります。私の質問は、MonoDevelop で VBox を既存の HBox の親として追加するにはどうすればよいですか?
VBox をウィンドウにドラッグしても何も起こらず、メニュー オプションが見つかりません。
グラフィック デザイナーではなく、コードで HBox (場合によっては VBox も) を作成することで、これを行うことができます。
例えば:
VBox vb = new VBox(); // Create a new VBox
vb.Visible = true; // Make sure it is visible
base.Add (vb); // Add the VBox to the base top window
base.Move (vb,0,0); // Make sure the VBox is placed at top-left of the window
HBox hb = new HBox(); // Create a new HBox
hb.Visible = true; // Make sure it is visible
vb.Add (hb); // Add the HBox to the VBox (so VBox is the parent)
HBox がグラフィック デザイナーで既に作成されていて、この方法でオンザフライで再作成したくない場合は、それに応じてコードを調整します。たとえば、既存の HBox 名が hb の場合は、次のようにします。
VBox vb = new VBox(); // Create a new VBox
vb.Visible = true; // Make sure it is visible
base.Add (vb); // Add the VBox to the base top window
base.Move (vb,0,0); // Make sure the VBox is placed at top-left of the window
vb.Add (hb); // Add the HBox to the VBox (so VBox is the parent)
もちろん、すべてのメニュー項目をコードでも VBox に追加する必要がありますが、同じルールに従って非常に簡単です。利用可能なメンバー関数とその使用方法がわからない場合は、新しいプロジェクトを作成し、(VBox を使用して) デザイナーでメニューを設計して保存します。ここで、フォルダーgtk-guiの下のファイルを確認します。メイン コード ファイル (メニューが配置された場所) と同じ名前のファイルには、元のプロジェクトで再作成するために必要な正確なコードが含まれています。
それが役立つことを願っています!
すべてのコントロールを含むパレット ウィジェットをコピーし、新しいパレットにドラッグして貼り付けることができます。数日前に、コントロールをカスタム ウィジェットに移動することにしたときに、これを行う必要がありました。
または、他の回答のようにコーディングすることもできますが、コピー/貼り付けの方が速いと思います。