2
for(int i=0; i<2; i++) {
types[i] = G_TYPE_STRING;
}
types[2] = G_TYPE_BOOLEAN;
tree_store = gtk_list_store_newv(3, types);
tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_store));
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), tree_view);
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes ("Level",renderer,"text",0,NULL);
gtk_tree_view_column_set_sort_column_id (column, 0);
gtk_tree_view_column_set_resizable (column, true);
gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes ("URL",renderer,"text",1,NULL);
gtk_tree_view_column_set_sort_column_id (column, 1);
gtk_tree_view_column_set_resizable (column, true);
gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column);
renderer = gtk_cell_renderer_toggle_new();
column = gtk_tree_view_column_new_with_attributes ("Image",renderer,"active",2,NULL);
gtk_tree_view_column_set_sort_column_id (column, 2);
gtk_tree_view_column_set_resizable (column, true);
gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column);
for(int i=0; i<mapTiles.size(); i++) {
GtkTreeIter iter;
gtk_list_store_append(tree_store, &iter);
gtk_list_store_set(tree_store, &iter, 0, "A", -1);
gtk_list_store_set(tree_store, &iter, 1, "B", -1);
gtk_list_store_set(tree_store, &iter, 2, FALSE, -1);
}
왜 그런가요? 문자열이있는 두 개의 열과 마지막에 체크 상자가있는 트리보기가 표시됩니다. 지금 당장 체크 박스가 나타나지만 토글 할 수는 없습니다.GTKTreeView의 GTKCellRendererToggle
감사합니다. 이제 콜백 함수를 호출 할 수 있습니다. 그러나 cell_renderer-> active = true를 지정해도 확인란이 클릭되지 않습니다. 검사 방법을 알고 있습니까? –
cell_renderer가 아닌 모델을 변경해야합니다. 콜백에서 열 2를 반대 값으로 설정하십시오. 콜백은 geter 경로에서 경로를 제공하고 iter는 열 2 실제 값 (gtk_tree_model_get (...))을 얻은 다음 gtk_list_store_set을 사용하여 값을 반대 (negate) 값으로 설정합니다. 기억 전환은 열 2에 바인드되며 ** user_data **를 사용하여 tree_view를 전달할 수 있습니다 (모델을 가져올 수 있음). –
편집자 주셔서 감사합니다. 나는 일하고 있었고 빨리 답장을하려했다. 나는 실수가 있다는 것을 알았지 만 그것을 고칠 시간이 없었습니다. 기여 해주셔서 감사합니다. –