[Python-de] GTK -> Liststore -> Treeview: klick

Diez B. Roggisch deets at web.de
Di Mai 27 15:59:36 UTC 2008


On Tuesday 27 May 2008 17:19:27 Volker Helm wrote:
> Hast Du mal ausprobiert, ob PyQt auch ein Dict in einer View zulässt?
> Dein Beispiel sieht nicht danach aus, sondern eher wie eine Liste. Wie
> sieht es aus, wenn die Liste 2 dimensional ist, Du weist nur 1 Wert zu?

Das verstehe ich nicht.

> Unter PyGTK habe ich es noch nicht probiert, gehe aber lt. Doku davon aus,
> dass es eine Liste sein muss.
>
> Unter PyGTK wird i.d.R. eine Methode geschriebe, die diese Event bearbeitet
> (das Anklicken) und dann ausführt, was gemacht werden soll. Eine Liste kann
> meines Wissens auch komplett aus dem Model einfach entnommen werden.
> Mathias sucht aber nach einer bestimmten Spalte.

Du hast es denke ich nicht wirklich begriffen. Mathias schrieb:

"""
Wenn nun eine Eintrag der Liste angeklickt wurde, brauche ich ein Index. 
Da sich die Spalten sortieren lassen, kann ich die Cursor-Position nicht 
nehmen. Hierzu habe ich eine durchnummerierte Spalte anlegt, die nicht 
angezeigt wird.
"""

Mit anderen Worten: durch ein Event bekommt er einen index auf welche Zeile 
der User gecklickt hat. 

Aus diesem Index moechte er nun auf sein urspruengliches Objekt schliessen, 
das die Zeile mit Daten befuellt hat.

Weil die zeilen aber umsortierbar sind, geht im die Zuordnung verloren. Um sie 
wieder herzustellen erzeugt eir eine unsichtbare spalte, in der er den Index 
speichert.

Statt das so unglaublich umstaenndlich zu machen, schlage ich ihm vor:

 - erzeuge eine Listitems aus deinen Datenobjekten.
 - speichere eine referenz auf dieses datenobjekt. Oder wenn er wirklich nur 
den index braucht, dann eben den.

Es gibt einfach absolut keinen Grund Daten die man fuer interne Zwecke braucht 
als extra List/Tree/SonstewasView-Spalten anzulegen! 

Diez