Seite 1 von 1

Auswahlbox

Verfasst: Donnerstag 18. September 2008, 19:20
von Wh1sper
Sorry, wenn ich noch eine Frage habe.
Bitte verschieben, wenn hier falsch.
Ich suche sowas, möglichst in gtl/Glade
Wie so eine Box heisst fällt mir nicht ein, schon gar nicht in englisch.

Bild

Geht sowas in der art?

Verfasst: Donnerstag 18. September 2008, 23:14
von Klip
Das dürfte eine Listbox sein.

Verfasst: Freitag 19. September 2008, 07:42
von mkesper
O weia, bei Cocktails auf Promille zu schließen kann aber böse ins Auge gehen, wenn der Barkeeper es "gut" mit dir meint...

Verfasst: Freitag 19. September 2008, 09:42
von Wh1sper
@mkallas: war nur ein Beispiel.
@all: Das heisst also selber basteln ist angesagt?!
Weil in Glade so viele komplett fertige Sachen sind dachte ich, ich frage mal.
Und für mein Attribut Problem weiter unten hat niemand eine Erklärung?

Verfasst: Freitag 19. September 2008, 13:28
von veers
Mit einem TreeView gehts bestimmt.

Verfasst: Samstag 20. September 2008, 12:03
von Wh1sper
Danke, treeview scheint die Lösung zu sein, diese Combobox kann man ja nicht dazu missbrauchen.
Mit treeview habe nun aber keine Möglichkeit gefunden Einträge anzulegen.
Müßte es nicht sowas wie insert_row oder so geben?
Mein Treeview hat bereits das model ListStore

Meine combobox sieht so aus:

Code: Alles auswählen

    def allezutaten(self,widget):
        self.allezutaten = self.wTree.get_widget("combobox1")
        # Befüllung aus den vorhandenen Zutaten
        #Es werden nur die Namen der Zutaten ausgewählt
        for zutat in  session.query(zutaten.c.Name).distinct():
            self.allezutaten.append_text(zutat[0])
Bei dem treeview so:

Code: Alles auswählen

    def rezeptzutaten(self,widget):
        self.liststore = gtk.ListStore(int, str, str)
        self.rezeptzutaten = self.wTree.get_widget("treeview1")
        self.rezeptzutaten.set_model(self.liststore)
        renderer = gtk.CellRendererText()
        col1 = gtk.TreeViewColumn("Anzahl", renderer, text=0)
        col2 = gtk.TreeViewColumn("Einheit", renderer, text=1)
        col3 = gtk.TreeViewColumn("Zutat", renderer, text=2)
        self.rezeptzutaten.append_column(col1)
        self.rezeptzutaten.append_column(col2)
        self.rezeptzutaten.append_column(col3)
Nun, die Spalten sind schon mal gar nicht schlecht, aber wie bekomme ich den Inhalt rein?
Aus der gtk doku im Glade werde ich nicht fündig und die ansonsten hilfreiche FAQ
http://faq.pygtk.org/index.py?req=all#13.1
sagt darüber auch nichts...
(oder bin ich blind)
Wäre nett, wenn mir jemand noch mal einen kleinen Schubs geben könnte...
Ps: das hier ist hobby, keine Hausaufgabe :)

Verfasst: Samstag 20. September 2008, 12:18
von Trundle
``gtk.ListStore``-Objekte haben eine ``append``-Methode, mit der man neue Zeilen hinzufügen kann. Im konkreten Fall also beispielsweise ``self.liststore.append([5, u'Esslöffel', 'Zucker'])``.

Verfasst: Samstag 20. September 2008, 13:08
von Wh1sper
Super, das wars.. Na, dann kann ich ja jetzt mal so langsam ans Programmieren denken...