问题描述
我正在用 C++ 编写一个跨平台的 Gtk3 应用程序。最近我一直致力于与 MacOS 的集成:
- 通过 Homebrew 获得的 Gtkmm 3.24;
- XCode 12.0;
- MacOS Catalina 10.15。
我从 Gtk::Application 派生了我的应用程序类。应用程序对象覆盖调用基类“on_startup()”的“on_startup()”,然后使用 Gtk 构建器资源从 XML 文件构造 Gio::Menu 对象,然后使用“Gtk::Application::set_app_menu( )' 来安装它:
MyApplication::on_startup()
{
Gtk::Application::on_startup();
// skipping details: ... Gtk builder reads Gio::Menu object from resource file ...
set_app_menu( pMenu );
}
当我第一次启动我的应用程序时:
但是,那么:
这是 100% 可重现的(起初冻结,切换到另一个应用程序然后返回,现在菜单可以工作了)。
我在 XCode 中创建了另一个项目并构建了 Gtkmm 示例“app_and_win_menus”,示例应用程序的行为方式完全相同。
所以我想我真的只是在寻找一种解决方法。我一直在网上搜索有关此问题的任何信息,并看到其他人普遍抱怨 MacOS 上的菜单栏冻结,但没有专门针对 Gtk(这台 Mac 上的所有其他应用程序都可以正常工作,只有我使用 Gtk+/Gtkmm 构建的应用程序) 3.24 显示此问题)。
我意识到这听起来有点像错误报告,这里可能不是提出它的地方,但我不确定从哪里开始。非常感谢任何信息。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)