0

Gtkada を使用して Ada で HMI に取り組んでおり、垂直セパレーター (Gtk_Vseparator) を作成したいのですが、表示されません。配置にボタンを追加すると表示されますが、セパレーターを追加すると表示されず、理由がわかりません。

これが私のコードです:

   Win                  : Gtk_Window;
   Notebook             : Gtk_Notebook;
   Notebook_Label       : Gtk_Label;
   Box_0                : Gtk_Vbox;
   Alignment_1          : Gtk_Alignment;
   Generate_Button      : Gtk_Button;
   Box_1                : Gtk_Hbox;
   Box_2_Add            : Gtk_Vbox;
   Alignment_2          : Gtk_Alignment;
   Add_Delete_Separator : Gtk_Vseparator;
   Box_2_Delete         : Gtk_Vbox;

   Init;
   Gtk_New (Win, Window_Toplevel);
   Gtk_New (Notebook);
   Gtk_New (Notebook_Label, "Generation");
   Gtk_New_Vbox (Box_0, Homogeneous => False, Spacing => 20);
   Gtk_New (Alignment_1, 0.5, 0.5, 0.0, 0.0);
   Gtk_New (Generate_Button, "Generate model");
   Gtk_New_Hbox (Box_1, Homogeneous => False);
   Gtk_New_Vbox (Box_2_Add, Homogeneous => False);
   Gtk_New (Alignment_2, 0.5, 0.5, 0.0, 0.0);
   Gtk_New_Vseparator (Add_Delete_Separator);
   Gtk_New_Vbox (Box_2_Delete, Homogeneous => False);

   Add_Delete_Separator.Show;
   Alignment_2.Add (Add_Delete_Separator);
   Box_1.Pack_End (Box_2_Add, Expand => True, Fill => True);
   Box_1.Pack_End (Alignment_2, Expand => True, Fill => True);
   Box_1.Pack_End (Box_2_Delete, Expand => True, Fill => True);
   Alignment_1.Add (Generate_Button);
   Box_0.Pack_End (Box_1, Expand => True, Fill => True);
   Box_0.Pack_End (Alignment_1, Expand => False, Fill => True); 

   Notebook.Append_Page (Box_0, Notebook_Label);
   Win.Set_Title ("Generator");
   Win.Set_Default_Size (1200, 800);
   Win.Set_Position (Win_Pos_Center);
   Win.Add (Notebook);
   Win.Show_All;

   Main;
4

1 に答える 1

2

AVseparatorには必要な最小の高さはありません。したがって、利用可能なすべての垂直方向のスペースを使用するように配置する場所を配置に伝える必要があります。

Gtk_New (Alignment_2, 0.5, 0.5, 0.0, 1.0);

ところで、コードをSSCCEとして投稿してください。剥ぎbegin取るなどしても、コードが読みやすくなるわけではありません。

于 2013-08-31T07:28:06.467 に答える