Ideen - Brainstorming 1. Desktop 1.1 es gibt ein Application-Objekt "Desktop", das die Wurzel der darzustellenden Objekte repräsentiert 1.2 der Desktop wird von Container abgeleitet und enthält kein kein eigenes Image 1.3 er hält ein WeakValueDictionary, in dem alle existierenden Widgets während ihrer Erzeugung eingetragen werden 2. Klassenstruktur object | | | Control | +------+--------+ | | Container Widget | | +------+---+-+-----+-----+-|---+------+-----------+------------+--------+ | | | +---|-+---|-+---|-+----|-+---------|-+----------|-+------|-+ | | | | | | | | | | | | | | | | | | Desktop Frame Button label Entry Text Checkbutton Optionbutton Listbox Scrollbar 3. Widgets und Container 3.1 istbox kann andere Widgets in der Liste darstellen? 3.2 Wigets können optional Text oder Image enthalten: Button, Label 3.3 Interaktion zwischenScrollbar und Listbox, Text optional 4. Variablenobjekte 4.1 Variablenobjekte dienen u.a. der Gruppierung und Steuerung von Checkbuttons und Optionbuttons 4.2 Check- und Optionbuttons haben einen on- und einen off-Wert default ist on=True, off=False (Int) on=Widgettext, off="" (String) 4.3 Variablen enthalten ein callback dictionary (weak) mit Funktionen, die nach einer Änderung des Inhalts mit folgenden Parametern aufgerufen werden: - self: Referenz auf das Variablenobjekt, z.B. um den callback zu loeschen - prevalue: Wert vor der Änderung - postvalue: Wert nach der Änderung 4.4 Variablentypen Var (generell), IntVar, StringVar, FloatVar, BoolVar 4.5 Das Textattribut von Widgets, die es verwenden, wird intern durch ein StringVar-Objekt repräsentiert 4.6 Das Valueattribut von Widgets, die es verwenden, wird intern durch ein ein IntVar oder FloatVar repräsentiert 4.7 der Wahrheitswert von Variablen entspricht dem ihres Inhalts 4.8 Die Sondermethoden __str__, __int__, __float__, __bool__ müssen implementiert werden 4.9 Der Wahrheitswert eines Variablenobjekts entspricht dem des repräsentierten Objekts (str, int, float, bool, sonstige) Meta-data --------- Data of file "index.csv" that must be contained in each imageset directory. ImageLoader._load_metadata reads the data of the csv-file saved in the imageset directory that is given in ImageLoader.imageset. It returns a list of data set dictionaries with: - "widgetname" : name of widget, like "button" - "filename" : name of file containing the images - "stretch" : value - if True: the tiles are stretchable if False: images are used as the are - "states" : the names of the states the tiles describe, like "normal", "over", "down", "disabled"