因此,我尝试使用 GtkSourceViewmm 在 C++ 中使用GtkSourceView,它的文档和支持级别给我的印象是很长一段时间都没有仔细研究过它。但我总是一个乐观主义者:)
我正在尝试使用类似于以下的代码添加SourceView :
Glib::RefPtr<gtksourceview::SourceLanguageManager> source_language_manager = gtksourceview::SourceLanguageManager::create();
Glib::RefPtr<gtksourceview::SourceLanguage> source_language = Glib::wrap(gtk_source_language_manager_guess_language(source_language_manager->gobj(), file, NULL));
Glib::RefPtr<gtksourceview::SourceBuffer> source_buffer = gtksourceview::SourceBuffer::create(source_language);
gtksourceview::SourceView* = m_source_view = new gtksourceview::SourceView(source_buffer);
m_vbox.pack_start(*m_source_view);
不幸的是,它吐出了警告
(algoviz:4992):glibmm-WARNING **:无法包装“GtkSourceLanguage”类型的对象。提示:此错误通常是由于未能调用库 init() 函数引起的。
当我在调试器中查看它时,确实上面的第二行(带有 的那一行Glib::wrap()
)正在返回NULL
。我不知道为什么会这样,但我试图通过添加Glib::init()
到程序的开头来注意警告,但这似乎也没有任何帮助。
我已经尝试过Google'ing,但没有成功。有谁知道 Glib 想让我初始化什么以便能够进行 wrap 调用?或者,更好的是,有没有人知道任何使用 GtkSourceViewmm(不仅仅是常规 GtkSourceView)的工作示例代码?我无法找到任何实际的示例代码,甚至在 Google 代码搜索上也找不到。
谢谢!