2010-04-12 4 views
1

GtkBuilder 관련 질문. 빌더 포인터를 참조 해제하면 빌더가 작성한 모든 화면/위젯이 삭제됩니다. 우리가파괴 된 GtkBuilder가 생성 된 모든 위젯을 파괴합니까?

gtk_builder_add_from_file(builder_ptr, "Test.glade", &error) 

일부 2 ~ 3 top_level 창으로 습지/XML을 사용하여 하나 개의 화면을 생성하고 GtkBuilder 포인터를 생성 (위와 같이) 그래서이 포인터를 삭제하면이 생성 삭제합니다 않습니다 후이 있다고 가정

if(builder_ptr) 
    g_object_unref(G_OBJECT(builder_ptr)); 

Windows 또는이 창을 수동으로 삭제해야합니까?

감사합니다.
PP입니다. documentation 가입일

답변

2

:

GtkBuilder 그것을 구성하고 그것을 완결되면 이 참조를 삭제 모든 객체에 대한 참조를 보유하고있다. 이렇게 마무리하면 은 에 포함되지 않은 위젯이 아닌 객체 인 또는 위젯을 파괴 할 수 있습니다. 최상위 창 의 경우 빌더로 작성한 경우 은 으로 전화를 걸고 gtk_widget_destroy()를 호출하여 과 그 밖의 모든 파일 ( )을 제거합니다.

따라서 GtkBuilder는이를 수행하지 않으므로 직접 처리해야합니다.

+0

고맙습니다. 빌더가 작성한 모든 최상위 창에'gtk_widget_destroy()'를 호출해야합니다. – User7723337

+0

@PP : 네, 문서가 말하는 것입니다. – unwind

관련 문제