gpt4 book ai didi

c++ - 为了使用 Glib::wrap,必须 Glib::init()'ed 什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:36 25 4
gpt4 key购买 nike

所以我正在尝试使用 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 **: Failed to wrap object of type 'GtkSourceLanguage'. Hint: this error is commonly caused by failing to call a library init() function.

当我在调试器中查看它时,上面的第二行(带有 Glib::wrap() 的行)确实返回了 NULL。我不知道这是为什么,但我试图通过将 Glib::init() 添加到程序的开头来注意警告,但这似乎也没有任何帮助。

我试过用 Google 搜索,但没有成功。有谁知道 Glib 要我初始化什么以便能够进行换行调用?或者,更好的是,有人知道任何使用 GtkSourceViewmm(不仅仅是常规 GtkSourceView)的工作示例代码吗?我找不到任何实际的示例代码,甚至在 Google 代码搜索中也找不到。

谢谢!

最佳答案

事实证明,也许并不奇怪,我需要初始化的是:

gtksourceview::init();

在此之后,我遇到了另一个问题,其中一个参数是 gtksourceview::SourceLanguageManager,但这是由一个真正的错误引起的,我 subsequently reported并被及时修复。所以现在一切正常!

关于c++ - 为了使用 Glib::wrap,必须 Glib::init()'ed 什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3233727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com