Gtk.Frame + Gtk.Box in eine gemeinsame Klasse wrappen
Verfasst: Freitag 23. September 2016, 19:02
[codebox=pys60 file=Unbenannt.txt][/code]Hallo zusammen.
Im Rahmen meiner ersten Ausflüge in die GUI-Programmierung mittels PyGtk möchte ich mir gern mal eure Meinung zu folgenden Code-Schnipsel einholen:
Ziel ist es, mittels der beiden Container Klassen Gtk.Frame und Gtk.Box eine Klasse zu erhalten, welche bildlich gesprochen eine Box mit Label und Rahmen darstellt. Um in davon abgeleiteten Klassen auch Properties einfach handhaben zu können, stellt diese Klasse die benötigten Methoden do_get_property() und do_set_property() bereits zur Verfügung. Aber irgendwie schleicht mich das Gefühl das müsste eigentlich besser gehen. Würde mich deshalb über die eine oder andere Anmerkung hierzu sehr freuen.
Schöne Grüße
Im Rahmen meiner ersten Ausflüge in die GUI-Programmierung mittels PyGtk möchte ich mir gern mal eure Meinung zu folgenden Code-Schnipsel einholen:
Code: Alles auswählen
class LabelledBox(Gtk.Frame):
"""
Composition class to provide a widget similar to Gtk.Box but with an additionally labelled frame.
This class delegates all instance attribute fetches to the embedded Gtk.Box instance.
"""
__gproperties__ = {}
def __init__(self, label, **kargs):
Gtk.Frame.__init__(self, label=label)
# To avoid recursive loops during instance attribute fetch
# we add the instance attributes directly into self.__dict__
self.__dict__['_content_box'] = Gtk.Box(**kargs)
self.__dict__['_content_box'].set_border_width(6)
self.add(self.__dict__['_content_box'])
def __getattr__(self, attr):
return getattr(self._content_box, attr)
def __setattr__(self, attr, value):
return setattr(self._content_box, attr, value)
def do_get_property(self, prop):
return getattr(self, prop.name)
def do_set_property(self, prop, value):
setattr(self, prop.name, value)
Schöne Grüße