[C][GTK] Segmentation fault bei Treeview



  • Hallo C Programmierer,

    Ich habe angefangen ein GTK-Programm in C zu schreiben, bisher habe ich dies nur in Python getan.

    Als ich in meinen Programm ein Treeview integrieren wollte bekomme ich beim Ausführen ein Segmentation fault. (Speicherzugriffsfehler)
    ich bin noch ziemlich neu in C, vielleicht habe ich irgendetwas verdreht mit den Zeigern. Ich würde mich über sehr Freuen wenn mir hier geholfen wird.

    Code:
    http://pastebin.com/hJXH0wy2



  • Jonas15 schrieb:

    Hallo C Programmierer,

    Ich habe angefangen ein GTK-Programm in C zu schreiben, bisher habe ich dies nur in Python getan.

    Als ich in meinen Programm ein Treeview integrieren wollte bekomme ich beim Ausführen ein Segmentation fault. (Speicherzugriffsfehler)
    ich bin noch ziemlich neu in C, vielleicht habe ich irgendetwas verdreht mit den Zeigern. Ich würde mich über sehr Freuen wenn mir hier geholfen wird.

    Code:
    http://pastebin.com/hJXH0wy2

    Ich habe Deine Code mal kurz "überflogen". Es fehlt eine main() und Du benutzt auch globale Variable.
    Vielleicht eine Kurzbeschreibung zum besseren Verständnis, wie eine Treeview in Gtk+ funktioniert

    GTK Tree View ist nach dem Model - View - Controller Prinzip kurz MVC aufgebaut. Model steht für die Daten, die angezeigt werden sollen (GTK+ nennt das GtkTreeModel, GtkListStore, GtkTreeStore und andere). View ist das Widget, das alles anzeigt. Controller ist das Verändern der angezeigten View und wird in GTK+ mit Renderer (GtkCellRenderer) bezeichnet. Das ist jetzt etwas vereinfacht das Design zusammengefasst. Man erkennt aber, dass der Datenteil unabhängig vom Anzeigeteil ist. Das heisst, dass man mit den selben Daten völlig unterschiedliche Views ("Sichten") auf die Daten erzeugen kann.

    Was bedeutet das jetzt für die Programmierung?
    Zunächst brauchst Du einen:

    gtk_list_store_new
    

    Dann brauchst Du einen

    gtk_tree_view_new_with_model
    

    und

    gtk_cell_renderer_text_new()
    // bei Graphiken
    gtk_cell_renderer_pixbuf_new()
    

    Dann brauchst Du einen:

    gtk_tree_view_insert_column_with_attributes
    

    Das ganze sollte dann noch in ein entsprechendes Srollwindow gepackt werden und wird dann so gefüllt:

    gtk_list_store_set
    

    Mach Dir die Mühe und suche in den entsprechenden Suchmaschinen nach den angegebenen Schlüsselbegriffen und Du wirst eine klasse Tabelle erhalten.


Anmelden zum Antworten