私は GtkD UI ライブラリ (D 言語の Gtk) を試しており、メニュー付きの単純なウィンドウを作成しました。メニューのコードは次のとおりです。
class TopView : Box
{
MainMenu theBar;
this()
{
super(Orientation.VERTICAL,10);
theBar = new MainMenu();
packStart(theBar,false,false,0);
}
}
class MainMenu : MenuBar
{
private MenuItem fileItem;
private FileMenu fileMenu;
this()
{
super();
fileItem = new MenuItem("File");
fileMenu = new FileMenu();
fileItem.setSubmenu(fileMenu);
append(fileItem);
}
}
class FileMenu : Menu
{
private MenuItem exitItem;
this()
{
super();
exitItem = new MenuItem("Exit");
exitItem.addOnActivate(&closeApp);
append(exitItem);
}
private void closeApp(MenuItem anItem)
{
Main.quit();
}
}
ウィンドウは問題なく表示され、メニューバーには「ファイル」項目が表示されますが、「ファイル」項目をクリックすると、その下に「終了」のあるメニューが表示されません。メイン ウィンドウの位置に関係なく、Exit を含むメニューは画面位置 0,0! に表示されます。
つまり、「ファイル」をクリックするたびに、コンピューター画面の左上隅にメニューが表示されます。
Gtk の実装でバグを見つけましたか? 私は GtkD ライブラリのバージョン 3.9.0 と Gtk ランタイムのバージョン 3.24.8 を使用しています。または、コードに何か不足していますか? メニューを正しく表示するにはどうすればよいですか?