그래서 GtkSourceView를 C++에서 사용하려고합니다. GtkSourceViewmm을 사용하고 있습니다. 문서와 지원 수준은 오랫동안 아주 조심스럽게 보지 않았다는 인상을줍니다. 그러나 나는 항상 낙관론자 :Glib :: wrap을 사용하기 위해서 Glib :: init()이되어야 할 것은 무엇입니까?
나는 다음과 같은 몇 가지 코드를 사용하여 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을 사용해 보았지만 성공적이지 못했습니다. Glib이 그 랩 전화를 할 수있게하기 위해 초기화를 원한다는 것을 아는 사람이 있습니까? 또는, GtkSourceViewmm (일반 GtkSourceView뿐만 아니라)을 사용하는 작업 샘플 코드를 아는 사람이 있습니까? 나는 어떤 실제 샘플 코드도 찾을 수 없었고, 구글 코드 검색에서도 찾을 수 없었다.
감사합니다.
새로운 버전의 경우 Gsv :: init()로 변경됩니다. – ergosys
Gsv :: init()을 사용하려면 gtksourceviewmm.h를 포함해야합니다. – Parker