2

我试图从文本文件中保存和加载树视图

带有滚动窗口容器的 reeview:

GtkWidget *scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_SHADOW_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
GtkWidget *view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(view), TRUE);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);

selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
gtk_container_add(GTK_CONTAINER(scrolledwindow), view);

设想:

在第一种情况下,treeview 包含三行,其中输入了信息。此时滚动条不可见,因为树视图“请求大小”是三行:

1. RED       100.00
-------------------
2. YELLOW    101.00
-------------------
3. BLUE      102.00
-------------------

我编写了一个代码来更新、保存和加载树视图从/到文本文件(我使用“从文件加载”按钮和“GTK_FILE_CHOOSER”)

从包含更多项目(四、五、...)的此文本文件导入时,列表会更新为所有新行,但会收到以下警告:

GtkScrolledWindow 0x922f1e0 is mapped but visible child GtkScrollbar 0x93812b0 is not mapped


1. RED       100.00
-------------------
2. YELLOW    101.00
-------------------
3. BLUE      102.00
-------------------   
4. GREEN     103.00
-------------------

当我将列表导出到文本文件时,会显示相同的消息。

此消息在文件选择器对话框被破坏后显示。

当滚动条可见时也会发生这种情况,文件选择器对话框启动,我改变主意并选择从 GTK_FILE_CHOOSER 的“取消”按钮取消操作。

谢谢

4

0 回答 0