私は小さなアプリケーションのために、GTKADAを使用していて、右のメニューバーのヘルプメニューを正当化したいです。はどのように右gtkadaを使用して正当化するために1つのメニュー項目を取得しなく減価償却の方法
古い方法は、新しいメニューのSet_Right_justifiedを呼び出すことだったが、それは今旧式です。
Apparantly私はこれを行うには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.私はこれは私が今の反対側にそれらを入れて、2つのメニューバーを持つことによってこれを解決しているGTKのGPL 2017バージョン& GPS
はなぜ推奨代替では動作しませんか?実際の結果は何ですか? – flyx