我想将 Glade 文件加载到简单的 Gtkmm 应用程序中。这是我的代码:
#include <gtkmm.h>
int main(int argc, char* argv[])
{
try {
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.helen.ide");
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("temp.glade");
Gtk::Window* w;
builder->get_widget("applicationwindow_ide", w);
return app->run(*w);
}
catch(Glib::Error e) {
printf("Error : %s\n", e.what().c_str());
return 1;
}
}
但它不起作用(它捕获了错误,表示 GtkSourceView 对于 Gtk::Builder 是未知的)。然而,在 Glade 中,文件可以在没有错误的情况下打开并编辑,显示“正常”GtkSourceView。
经过一段时间的谷歌搜索,我发现 SourceView 的类型必须“在 glib 的类型系统中注册”,但在 C++ 中没有办法做到这一点,只有在 Python 中。
那么,应该如何修正呢?提前致谢!