Hallo nochmal
zuerstmal zur letzten Frage. Dein OwnButton ist ein "spezialisierter" Button, und sollte daher von Button abgeleitet werden. Dann brauchst Du in der Klasse auch nicht noch ein Buttonobjekt erzeugen wie in Deinem letzten Beispiel.
Jetzt zum neuen Problem.
Code: Alles auswählen
class Schieber(Label, Scale):
"""_('Eigene Klasse >>Schieber<< ... erstellte ein Beschriftung und einen
zugehörigen Schieberegler
"""
def __init__(self, master, text, to, tickinterval, resolution=1000):
Label.__init__(self,master, text=text, bg=col_um_bg, fg=col_um_fg, bd=1, relief=RIDGE, font=("arial", 12, "bold"))
Scale.__init__(self,master, bd=1, relief=RIDGE, orient=HORIZONTAL, length = 330, from_=0, to=to, \
tickinterval=tickinterval, resolution=resolution, bg=col_um_bg, fg=col_um_fg, font=("arial", 10, "bold"))
uiuiui, Mehrfachvererbung hmm verwende ich nie, ist zwar in python möglich, bring aber immer Probleme. Hier hilft wieder die Überlegung was ist Dein Schieber und was hat Dein Schieber? Ist es ein ScaleObjekt mit einem Label oder ein Label mit einem Scaleobjekt? Da die Funktionalität der Scaleobjekts im Vordergrund steht, würde ich zu ersterem Tendieren. Also ein Scaleobjekt mit einem Label.
Code: Alles auswählen
class Schieber(Scale):
"""_('Eigene Klasse >>Schieber<< ... erstellte einen Schieberegler mit
zugehöriger Beschriftung
"""
def __init__(self, master, text, to, tickinterval, resolution=1000):
self.label = Label(master, text=text, bg=col_um_bg, fg=col_um_fg, bd=1, relief=RIDGE, font=("arial", 12, "bold"))
self.label.pack()
Scale.__init__(self,master, bd=1, relief=RIDGE, orient=HORIZONTAL, length = 330, from_=0, to=to, \
tickinterval=tickinterval, resolution=resolution, bg=col_um_bg, fg=col_um_fg, font=("arial", 10, "bold"))
So kannst Du Deine Schieberobjekte genauso verwenden und abfragen wie Scaleobjekte. In dem Falle, da ein Label ja kaum geändert oder abgefragt wird, würde ich es so machen. Wenn Du complexere zusammenarbeitende Objekte zusammenfassen willst, würde ich diese dann von einem Frame ableiten und in den Frame die objekte Packen und Anfragen und Auswertungen an die Unterobjekte weiterleiten. Z.B. bei einem Scale und einem Textobjekt, in dem der Wert des Scaleobjektes auch numerisch eingegeben werden kann. Ich bastel dann später mal ein Beispiel und poste es hier.
Gruß
Dookie