【发布时间】:2010-07-13 02:14:25
【问题描述】:
所以我尝试使用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-警告 **: 无法包装类型的对象 'GtkSourceLanguage'。提示:这个错误 通常是由于没有打电话引起的 一个库 init() 函数。
当我在调试器中查看它时,确实上面的第二行(带有Glib::wrap() 的那一行)正在返回NULL。我不知道为什么会这样,但我尝试通过在程序开头添加Glib::init() 来注意警告,但这似乎也没有任何帮助。
我已经尝试过 Google 搜索,但没有成功。有谁知道 Glib 想让我初始化什么以便能够进行 wrap 调用?或者,更好的是,有没有人知道任何使用 GtkSourceViewmm(不仅仅是常规 GtkSourceView)的工作示例代码?我无法找到任何实际的示例代码,甚至在 Google 代码搜索中也找不到。
谢谢!
【问题讨论】:
标签: c++ gtk glib gtksourceview