Wenn ich eine UI-Klasse für meine App erstelle, frage ich mich oft, ob es besser ist, meine Klasse von Gtk.Widget
abzuleiten und dann die benötigten Widgets explizit hinzuzufügen oder direkt von einem bestimmten Widget abzuleiten.Ist es besser, von Gtk.Widget oder direkt von einem bestimmten Widget abzuleiten?
Hier sind zwei Beispiele, welches ist das beste?
class MyComponent(Gtk.Widget):
def __init__(self):
Gtk.Widget.__init__(self)
box = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 6)
button1 = Gtk.Button.new_with_label("Awesome Button1")
button2 = Gtk.Button.new_with_label("Awesome Button2")
button3 = Gtk.Button.new_with_label("Awesome Button3")
box.pack_start(button1, True, True, 0)
box.pack_start(button2, True, True, 0)
box.pack_start(button3, True, True, 0)
self.add(box)
class MyComponent(Gtk.Box):
def __init__(self):
Gtk.Box.__init__(self, Gtk.Orientation.HORIZONTAL, 6)
button1 = Gtk.Button.new_with_label("Awesome Button1")
button2 = Gtk.Button.new_with_label("Awesome Button2")
button3 = Gtk.Button.new_with_label("Awesome Button3")
self.pack_start(button1, True, True, 0)
self.pack_start(button2, True, True, 0)
self.pack_start(button3, True, True, 0)
Es scheint mir, dass die erste Version besser ist, da meine Komponente nicht technisch ein Gtk.Box
ist, dann ist es ein Widget, das ein Gtk.Box
verwendet, aber es könnte auch ein Gtk.Grid
oder ein Gtk.DrawingArea
verwenden .
So scheint es richtig auf einem Design-Standpunkt, aber vielleicht gibt es einige technische Details, die ich nicht sehe. Was ist dein Rat?
Noch eine andere mögliche Lösung! ;) In meinem Fall denke ich, dass ich es vorziehen würde, von einem Gtk.Widget abzuleiten, da das, was drin sein wird, ein komplexeres Widget sein wird, das ich mehrere Male wiederverwenden werde. Vielen Dank! – Creak