Je souhaites afficher une liste d'élément dans une colonne pour celà
j'ai dessiné à l'aide de Glade un TreeVieW, j'ai ensuite créé le code
suivant :
# Importation des modules
import pygtk
import gtk.glade
import gobject
# Capture des signaux
liste.signal_autoconnect(globals())
# Récupération du TreeView
Tv0 = liste.get_widget("Tv0_WIndex")
# Création d'une ListeStore : 1 colonne de type String
Model = gtk.ListStore(str)
# Connexion du Model avec le TreeView
Tv0.set_model(Model)
# Cellule
cell0 = gtk.CellRendererText()
# Définition de la Colonne 0
Col0 = gtk.TreeViewColumn("First Name ", cell0, text=0)
# Ajout de la colonne au TreeView
Tv0.append_column(Col0)
# Ajout d'une ligne
row = (["Coucou"])
Model.append(row)
Résultat : Seul le titre de la colonne s'affiche.
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message
d'erreur suivant :
Traceback (most recent call last):
File "./liste.py", line 58, in ?
Model.append(row)
ValueError: row sequence has wrong length
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
tiissa
Pascal Chenevas-Paule wrote:
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message d'erreur suivant :
Traceback (most recent call last): File "./liste.py", line 58, in ? Model.append(row) ValueError: row sequence has wrong length
Si tu veux un tuple de longueur 1, il faut écrire ("Coucou",). ("Coucou") est une chaîne entourée de parenthèse, et donc une séquence de longueur 6 (d'où l'erreur je suppose). De même, (["coucou"]) est une liste de longueur 1 et les parenthèses sont inutiles.
Pour ton problème de ListStore, je ne sais pas par contre.
Pascal Chenevas-Paule wrote:
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message
d'erreur suivant :
Traceback (most recent call last):
File "./liste.py", line 58, in ?
Model.append(row)
ValueError: row sequence has wrong length
Si tu veux un tuple de longueur 1, il faut écrire ("Coucou",).
("Coucou") est une chaîne entourée de parenthèse, et donc une séquence
de longueur 6 (d'où l'erreur je suppose).
De même, (["coucou"]) est une liste de longueur 1 et les parenthèses
sont inutiles.
Pour ton problème de ListStore, je ne sais pas par contre.
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message d'erreur suivant :
Traceback (most recent call last): File "./liste.py", line 58, in ? Model.append(row) ValueError: row sequence has wrong length
Si tu veux un tuple de longueur 1, il faut écrire ("Coucou",). ("Coucou") est une chaîne entourée de parenthèse, et donc une séquence de longueur 6 (d'où l'erreur je suppose). De même, (["coucou"]) est une liste de longueur 1 et les parenthèses sont inutiles.
Pour ton problème de ListStore, je ne sais pas par contre.
Pascal Chenevas-Paule
Pascal Chenevas-Paule wrote:
Bonjour,
Je souhaites afficher une liste d'élément dans une colonne pour celà j'ai dessiné à l'aide de Glade un TreeVieW, j'ai ensuite créé le code suivant :
# Importation des modules import pygtk import gtk.glade import gobject
# Capture des signaux liste.signal_autoconnect(globals())
# Récupération du TreeView Tv0 = liste.get_widget("Tv0_WIndex") # Création d'une ListeStore : 1 colonne de type String Model = gtk.ListStore(str) # Connexion du Model avec le TreeView Tv0.set_model(Model) # Cellule cell0 = gtk.CellRendererText() # Définition de la Colonne 0 Col0 = gtk.TreeViewColumn("First Name ", cell0, text=0) # Ajout de la colonne au TreeView Tv0.append_column(Col0) # Ajout d'une ligne row = (["Coucou"]) Model.append(row)
Résultat : Seul le titre de la colonne s'affiche.
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message d'erreur suivant :
Traceback (most recent call last): File "./liste.py", line 58, in ? Model.append(row) ValueError: row sequence has wrong length
Merci,
Pascal
Bon j'ai pigé l'erreur,
en fait par défaut (chez moi) dans glade lorsque je créer une TreeVieW il ne me fait apparaître que l'entête des colonnes, c'est à moi ensuite à mettre la bonne "height" dans l'onglet "Common" pour voir la liste. En fait le code est bon
Pascal Chenevas-Paule wrote:
Bonjour,
Je souhaites afficher une liste d'élément dans une colonne pour celà
j'ai dessiné à l'aide de Glade un TreeVieW, j'ai ensuite créé le code
suivant :
# Importation des modules
import pygtk
import gtk.glade
import gobject
# Capture des signaux
liste.signal_autoconnect(globals())
# Récupération du TreeView
Tv0 = liste.get_widget("Tv0_WIndex")
# Création d'une ListeStore : 1 colonne de type String
Model = gtk.ListStore(str)
# Connexion du Model avec le TreeView
Tv0.set_model(Model)
# Cellule
cell0 = gtk.CellRendererText()
# Définition de la Colonne 0
Col0 = gtk.TreeViewColumn("First Name ", cell0, text=0)
# Ajout de la colonne au TreeView
Tv0.append_column(Col0)
# Ajout d'une ligne
row = (["Coucou"])
Model.append(row)
Résultat : Seul le titre de la colonne s'affiche.
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message
d'erreur suivant :
Traceback (most recent call last):
File "./liste.py", line 58, in ?
Model.append(row)
ValueError: row sequence has wrong length
Merci,
Pascal
Bon j'ai pigé l'erreur,
en fait par défaut (chez moi) dans glade lorsque je créer une TreeVieW
il ne me fait apparaître que l'entête des colonnes, c'est à moi ensuite
à mettre la bonne "height" dans l'onglet "Common" pour voir la liste.
En fait le code est bon
Je souhaites afficher une liste d'élément dans une colonne pour celà j'ai dessiné à l'aide de Glade un TreeVieW, j'ai ensuite créé le code suivant :
# Importation des modules import pygtk import gtk.glade import gobject
# Capture des signaux liste.signal_autoconnect(globals())
# Récupération du TreeView Tv0 = liste.get_widget("Tv0_WIndex") # Création d'une ListeStore : 1 colonne de type String Model = gtk.ListStore(str) # Connexion du Model avec le TreeView Tv0.set_model(Model) # Cellule cell0 = gtk.CellRendererText() # Définition de la Colonne 0 Col0 = gtk.TreeViewColumn("First Name ", cell0, text=0) # Ajout de la colonne au TreeView Tv0.append_column(Col0) # Ajout d'une ligne row = (["Coucou"]) Model.append(row)
Résultat : Seul le titre de la colonne s'affiche.
Si je remplace row = (["Coucou"]) par ("Coucou") j'obtiens le message d'erreur suivant :
Traceback (most recent call last): File "./liste.py", line 58, in ? Model.append(row) ValueError: row sequence has wrong length
Merci,
Pascal
Bon j'ai pigé l'erreur,
en fait par défaut (chez moi) dans glade lorsque je créer une TreeVieW il ne me fait apparaître que l'entête des colonnes, c'est à moi ensuite à mettre la bonne "height" dans l'onglet "Common" pour voir la liste. En fait le code est bon