我正在使用 GTKADA,用于一个小型应用程序,并希望右对齐菜单栏上的帮助菜单。
旧方法是在新菜单上调用 Set_Right_justified,但现在已经过时了。
显然我应该能够使用 Set_Hexpand 和 Set_Halign 来做到这一点。
我目前使用的代码是:-
with GTK.WIDGET;
procedure Add_Menu_To_Menu_Bar
( Menu_Bar : in GTK.MENU_BAR.Gtk_Menu_Bar;
Menu : in GTK.MENU.Gtk_Menu;
Label : in string;
Right_Justified : in boolean := False )
is
New_Item : GTK.MENU_ITEM.Gtk_Menu_Item;
begin
GTK.MENU_ITEM.Gtk_New( Menu_Item => New_Item,
Label => Label );
New_Item.Set_Right_Justified( Right_Justified => Right_Justified );
-- if Right_Justified then
-- -- Below is the recommended alternative to above
-- -- but dosn't work
-- New_Item.Set_Hexpand( Expand => true );
-- New_Item.Set_Hexpand_Set(Set => true );
-- New_Item.Set_Halign( Align => GTK.WIDGET.Align_End );
-- -- Below does work, but only sets a fixed margin
-- New_Item.Set_Margin_Start(Margin => 40 );
-- New_Item.Set_Margin_End(Margin => 40 );
-- -- Below effects the entire menu bar
-- Menu_Bar.Set_Hexpand(Expand => true);
-- Menu_Bar.Set_Halign(Align => GTK.WIDGET.Align_End);
-- end if;
GTK.MENU_ITEM.Show( New_Item );
GTK.MENU_ITEM.Set_Submenu( New_Item, Menu );
GTK.MENU_BAR.Append( Menu_Shell => Menu_Bar,
Child => New_Item );
结束 Add_Menu_To_Menu_Bar;
NB 1. 我知道这现在被认为是不好的做法。2. 我没有使用 glade 3. 这是在 windows 10 上,带有 GPL 2017 版本的 GTK 和 GPS