我已经使用 gtkmm 一段时间了,没有遇到任何问题。我最近想开始使用 Gtk::EventControllerKey
来处理一些事件处理好东西,但是 make
告诉我它找不到那个类。我查看了文档,它说它应该包含在 <gtkmm/eventcontrollerkey.h>
中,它应该包含在我的 <gtkmm/gtkmm.h>
中,但我还是尝试了。
当找不到那个头文件时,我检查了包含文件夹中的 gtkmm
,我只能找到 <gtkmm/eventcontroller.h>
。环顾四周后,EventControllerKey
类绝对是 gtkmm
的一部分,所以我检查了 Github 页面,你瞧,标题在那里。
我正在运行 Ubuntu 20-something 并且我安装了 libgtkmm
版本 3.24.2-1build1
。
我不明白为什么我没有这个。任何建议将不胜感激。
答案 0 :(得分:0)
看来你的 Gtkmm 版本太旧了。您提到您安装了 3.24.2 版。过快地查看 Gtkmm official repository,可以得出结论,标题 eventcontrollerkey.h
只是存在。但是请记住,此视图是针对分支 master 的,它是 3.24.2 之前的。
在您的情况下,如果我们选择版本 3.24.2 的存储库标签,我们 得到 this view, 其中标题确实不可用。
事实上,我们必须走到最远的 version 3.95.1 才能看到它(在 3.93.0 中,这是最接近的可用标记,它不存在)。根据 documentation for Gtk::EventControllerKey
它指出它 (Gtk::EventControllerKey
) 从 3.94 版开始可用。
令人困惑的是,在 Gtk 中,GtkEventControllerKey
从 3.24 开始可用,如描述部分下的 here 所述。在这种情况下,Gtkmm(有点)落后于 Gtk。
总而言之,如果你想使用它,你将不得不更新到 3.94 或更高版本。