Treeview CellRendererToggle änder alle Zeilen
Verfasst: Donnerstag 8. Oktober 2015, 14:10
Hallo,
ich habe ein Problem mit dem gtk CellRendererToggle Widget. Dieses ist mit einer Funktion verbunden, dass bei einem Klick den Zustand von aktiv auf inaktiv ändert. Leider wird dieser Zustand dann in allen Zeilen angenommen. Ich bin da noch nicht ganz drin. Hier der Code:
Auch bin ich mir nicht sicher, ob ich den Liststore (self.keep_sync_liststore) überhaupt ändern muss. Order wie sinnvoll die Iteration zum Aufbau der Zellen ist.
Freue mich auf eure Kommentare.
ich habe ein Problem mit dem gtk CellRendererToggle Widget. Dieses ist mit einer Funktion verbunden, dass bei einem Klick den Zustand von aktiv auf inaktiv ändert. Leider wird dieser Zustand dann in allen Zeilen angenommen. Ich bin da noch nicht ganz drin. Hier der Code:
Code: Alles auswählen
for n, header_text in enumerate(["Aktive", "Quantity", "Warning", "Sellout", "Keep"]):
if header_text in ["Aktive", "Sellout"]:
cell = gtk.CellRendererToggle()
cell.set_property('activatable', True)
cell.connect("toggled", self.on_sync_treeview_button_toggled, n, header_text)
column = gtk.TreeViewColumn(header_text, cell)
else:
cell = gtk.CellRendererText()
cell.set_property('editable', True)
column = gtk.TreeViewColumn(header_text, cell, text=n)
column.set_sort_column_id(n)
self.keep_sync_treeview.append_column(column)
mainbox_left.pack_start(self.keep_sync_treeview, False, False, 0)
for i in range(1,3):
self.keep_sync_liststore.append([False, 1, 10 ,20 False])
Code: Alles auswählen
def on_sync_treeview_button_toggled(self, widget, path, column, data):
widget.set_active( [True,False][widget.get_active()] )
self.keep_sync_liststore[path][column] = [True, False][widget.get_active()]
Freue mich auf eure Kommentare.