2010-10-12 34 views
0

Après avoir suivi le tutoriel officiel ici: tutorialPyGTK - Ajout de lignes à gtk.TreeStore

Je suis encore avoir des problèmes d'ajouter des lignes/créer un objet TreeIter. Voici ce que mon code ressemble à:

builder = gtk.Builder() 
    self.treeview = builder.get_object("treeview") 
    self.treestore = gtk.TreeStore(str) 

    self.treeview.set_model(self.treestore) 

    self.id = gtk.TreeViewColumn('ID') 
    self.type = gtk.TreeViewColumn("Type") 
    self.readName = gtk.TreeViewColumn("Filename") 
    self.set = gtk.TreeViewColumn("Set") 

    self.treeview.append_column(self.id) 
    self.treeview.append_column(self.readName) 
    self.treeview.append_column(self.type) 
    self.treeview.append_column(self.set) 

    self.cell = gtk.CellRendererText() 
    self.cell1 = gtk.CellRendererText() 
    self.cell2 = gtk.CellRendererText() 
    self.cell3 = gtk.CellRendererText() 

    self.id.pack_start(self.cell, True) 
    self.readName.pack_start(self.cell1, True) 
    self.type.pack_start(self.cell2, True) 
    self.set.pack_start(self.cell3, True) 

    self.id.add_attribute(self.cell, 'text', 0) 
    self.readName.add_attribute(self.cell1, 'text', 1) 
    self.type.add_attribute(self.cell2, 'text', 2) 
    self.set.add_attribute(self.cell3, 'text', 3) 

    self.treeview.set_reorderable(True) 

    self.readListVP.add(self.treeview) 

    iter = self.treestore.get_iter(self.treestore.get_path(iter)) #here's where my problem lies 
    self.treestore.set_value(None, 0, self.fileCountStr) 
    self.treestore.set_value(None, 1, "paired-end") 
    self.treestore.set_value(None, 2, self.file) 
    self.treestore.set_value(None, 3, self.readSetStr) 
+2

D'accord, vous avez mis un commentaire où votre problème est, mais * quel est exactement votre problème *? Et où est ta question? –

+0

Oui, quelle est la question? –

Répondre

1

je place un certain nombre de problèmes généraux avec le code ainsi:

  1. Vous avez créé trop de CellRenderer « s! Utilisez-en un pour toute la table. Ne pas utiliser le Builder()! C'est juste stupidement trop compliqué.
  2. Vous n'allez pas ajouter des colonnes de la manière la plus efficace.

Regardez dans la question I've already asked.