我使用gtkmm已经有一段时间了,还没有遇到任何问题。我最近想开始使用Gtk::EventControllerKey来做一些事件处理的事情,但是make告诉我它找不到那个类。我看了文档,它说它应该包含在<gtkmm/eventcontrollerkey.h>中,这应该包含在我的<gtkmm/gtkmm.h>中,但我还是尝试了。
当没有找到那个头文件时,我检查了include文件夹中的gtkmm,我只能找到<gtkmm/eventcontroller.h>。环顾四周后,EventControllerKey类肯定是gtkmm的一部分,所以我检查了Github页面,看看,头文件就在那里。
我运行的是Ubuntu20左右,并且安装了libgtkmm版本的3.24.2-1build1。
我不明白为什么我没有这个。如有任何建议,我们将不胜感激。
发布于 2021-01-31 01:42:36
您的Gtkmm版本似乎太旧了。您提到您已经安装了版本3.24.2。快速查看Gtkmm official repository,可以得出这样的结论:标头eventcontrollerkey.h只是存在。但是请记住,此视图是针对分支主视图的,该视图早于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或更高版本。
https://stackoverflow.com/questions/65855318
复制相似问题