我正在试验GtkD UI库(Gtk用于D语言(,并创建了一个简单的窗口菜单菜单的代码如下:
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版本。或者am我的代码中遗漏了什么?如何使菜单正确显示?
我发现了菜单显示错误的原因:
这显然是Windows库中的一个错误。我把同样的代码复制到Linux环境中,编译并运行它。菜单在正确的位置显示正确。在Windows上,此代码将菜单放在屏幕的左上角(位置0,0(。
我已找到报告此错误的位置。希望那些为Windows维护GtkD和Gtk的人能够相对较快地修复它。。。