0
我正在使用GTKADA,为一个小应用程序,并希望右对齐菜单栏上的帮助菜单。如何让一个菜单项目右对齐使用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;
N.B. 1.我知道这现在被认为是不好的做法。 2.我不利用林间空地 3.这是Windows 10,与2017年GPL版本的GTK & GPS的
为什么建议的替代方法不起作用?什么是实际结果? – flyx