2010-07-13 8 views
3

그래서 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뿐만 아니라)을 사용하는 작업 샘플 코드를 아는 사람이 있습니까? 나는 어떤 실제 샘플 코드도 찾을 수 없었고, 구글 코드 검색에서도 찾을 수 없었다.

감사합니다.

답변

5

HAPS는 놀랍게도, 내가 무엇을 초기화하기 위해서 필요로하는 것을하지 :이 후

gtksourceview::init(); 

, 나는 gtksourceview::SourceLanguageManager에 매개 변수 중 하나가 또 다른 문제로 실행하지만, 이것은 내가 subsequently reported하고 신속하게 고정 진정한 버그로 인해 발생 된 . 그래서 모든 것이 잘되고 있습니다!

+1

새로운 버전의 경우 Gsv :: init()로 변경됩니다. – ergosys

+0

Gsv :: init()을 사용하려면 gtksourceviewmm.h를 포함해야합니다. – Parker

0

나는 gtkmm을 사용합니다. 일반적으로이 같은 물건을 초기화해야한다 : 죄송합니다 (

http://library.gnome.org/devel/gtkmm/2.19/classGtk_1_1Main.html

하지만 링크 옵션 : 자세한 내용은 여기를

delete _GTKMain; 

확인 : 물론

_GTKMain = new Gtk::Main(0, 0, false); 

은 잊지 마세요 작동하지 않습니다 ...)

+0

당신이 대답 한 것과 정확히 같은 질문에 연결했습니다 : –

+0

@Adrian : 네, 맞습니다. 나는 그것을 고쳐 줬다 :-) – neuro

+0

Hehe, 문제 없음 :)하지만 나는 이미 이것을하고 있었다. (나는 메인 루프를 시작하지 않았다면 윈도우가 나타나지 않을 것이라고 생각한다!) 문제는 다른 것이었다. , 나는 내 자신의 대답에 게시했습니다. 답변을 주셔서 감사합니다. –