ist das mit itertools machbar?
Verfasst: Dienstag 7. August 2007, 11:28
ich bin gerade völlig planlos wie ich die itertools auf mein Beispiel anwenden kann bzw was evtl besser gehen sollte.
Problem: Ich möchte gern über den aktiven Key in c1string, entrys seiner Werte generieren -> z.B. entry1, entry2 etc. Also abhängig von der aktuellen Keywahl sollen dann Textfelder mit den Werten des Keys erzeugt werden.
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
import pygtk
pygtk.require('2.0')
import gtk
from itertools import izip, count
class Test:
def delete_event(self, widget, event, data=None):
print "delete event ausgelöst"
return False
def destroy(self, widget, data=None):
gtk.main_quit()
def changed_cb(self, combobox):
model = combobox.get_model()
self.index = combobox.get_active()
if self.index:
print 'Element :', model[index][0], 'gewählt!'
print self.index
return self.index
def c1string(self, liste=None):
return {'1':['a', 'b', 'c'], '2':['f', 'g', 'h'], '3': ['x', 'y', 'z']}
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_border_width(10)
self.window.set_title('test')
self.vbox_1 = gtk.VBox(False, 0)
self.window.add(self.vbox_1)
c1string = self.c1string()
c1stringkeys= c1string.keys()
c1stringkeys.sort()
liststore = gtk.ListStore(str)
for n in c1stringkeys:
liststore.append(['%s'%n])
self.combo = gtk.combo_box_new_text()
self.combo.set_model(liststore)
self.combo.set_active(0)
self.vbox_1.pack_start(self.combo, True, True, 0)
#for number, value in izip(count(1), c1string[self.index]):
# entry,number = gtk.Entry()
#handlers
self.window.connect('delete_event', self.delete_event)
self.window.connect("destroy", self.destroy)
self.combo.connect('changed', self.changed_cb)
#shows
self.combo.show()
self.vbox_1.show()
self.window.show()
def main():
gtk.main()
if __name__ == "__main__":
launch = Test()
main()