[Solved] [GTK] + [C] Read Row of TreeView



  • Nabend Leute,

    wollte mal wissen ob einer ne Idee hat wie ich eine ganze TreeView Liste auslesen kann,

    Wenn ich "gtk_tree_view_get_selection" benutze dann kann ich den markierten Wert auslesen. aber wie lese ich die ganze Liste aus ?

    Eigentlich habe ich das Ziel einen bestimmten Wert zu löschen, aber das kann ich erst machen wenn ich weiß wo in der Liste der steckt.

    mfg akoww

    //edit

    hat sich erledigt
    mit hilfe gtk_tree_model_foreach wars machbar



  • Wenn ich eine Row auslese, mache ich das etwa so:

    void G_MODULE_EXPORT
    on_changed(GtkWidget * used_widget,
               WorkFields * work)
    {
        GtkTreeModel   *model;
        gchar          *field;      // temp. field
        gint            i;
        //
        if (gtk_tree_selection_get_selected
            (GTK_TREE_SELECTION(used_widget), &model, &gtk_struct_w1.iter))
            //
          {
              for (i = 0; i < N_COLUMNS; i++)
                {
    				// Get fields of row Listview
                    gtk_tree_model_get(model, &work->act_iter, i,       // LIST_ITEM1-N_COLUMNS
                                       &field, -1);
                    switch (i)
                      {
                      case LIST_ITEM1:     // i = 0
                          strcpy(work->my_field_1, field);
                          break;
                      case LIST_ITEM2:     // i = 1
                          strcpy(work->my_field_2, field);
                          break;
                      case LIST_ITEM3:     // i = 2
                          [.....]
                      default:
                          break;
                      }
                }
              //
              // Storage for field was handeled by GTK+
              g_free(field);
           }
        return;
    }
    

    Wenn ich das richtig verstanden habe, willst Du Deine ganze Tabelle durchsuchen... Ich habe damit jetzt keine Erfahrung... Aber vielleicht eine Fährte: Versuche es über den Iter. Die andere Frage wäre natürlich: Hast Du keine Kontrolle über den Inhalt der Tabelle (irgendwann wird sie ja schliesslich erstellt), z.B via einer DB???


Anmelden zum Antworten