mich plagt folgendes Problem: Ich versuche die Beschriftung eines Buttons je nach Zustand zu ändern. Der Button ist im normalen Zustand mit "Show Stop" beschriftet. Wird er gedrückt und losgelassen öffnet sich ein Popupfenster mit einem Warnhinweis und zudem soll der Show-Stop-Button nun die Schrift "Gestoppt" tragen anstatt "Show Stop". In diesem Popupfenster gibt es zwei Buttons, die beide das Popup wieder schließen und den Show-Stop-Button in die gleiche Ausgangslage wie vor Öffnen des Popups führen sollen, sprich: Er soll wieder die Aufschrift "Stop Show" tragen.
Was bisher funktioniert ist die Änderung der Aufschrift von "Stop Show" hin zu "Gestoppt" sobald der Button gedrückt wird. Wenn ich aber im Popupmenü auf einen der Buttons klicke und sich das Popupmenü wieder schließt behält der Show-Stop-Button seine Aufschrift "Gestoppt" bei. Mit print habe ich mir die Aufschrift ausgeben lassen, den der Button nach Schließen des Popups haben sollte, und diese Aufschrift ist tatsächlich wieder "Stop Show", aber angezeigt wird mir weiterhin "Gestoppt" auf dem Button. Würde mich sehr über Hilfe freuen!
Code: Alles auswählen
class Stopbutton(Button):
Status = StringProperty("STOP SHOW")
def stopButtonText(self,wert):
self.Status=wert
print(wert)
def stoppressed(self):
print("Stop wurde gedruckt!")
StopPopup().open()
self.stopButtonText("Gestoppt")
class StopPopup(Popup):
def springBeginn(self):
print("Springe zu Beginn!")
wert='Stop Show'
Xyz=Stopbutton()
Xyz.stopButtonText(wert)
self.dismiss()
def fortfahren(self):
print("Show fortfahren!")
wert='Stop Show'
Xyz=Stopbutton()
Xyz.stopButtonText(wert)
self.dismiss()
Code: Alles auswählen
<Stopbutton>
id: stopbutton
text: root.Status
on_release: self.stoppressed()
color: 1,1,1,1
text_size: self.size
font_size: (self.width*0.2+self.height*0.2)/2
background_normal: ''
background_color: 0,0,0,0
size_hint: 0.2, 1
halign: 'center'
valign: 'center'
canvas.before:
Color:
rgba: (1,0,0,1) if self.state=='normal' else (1,1,1,1)
RoundedRectangle:
pos: self.pos
size: self.size
radius: [5,]
<StopPopup>:
auto_dismiss: False
size_hint: 0.5, 0.5
background_color: 0,0,0,0
separator_color: 1,1,1,1
separator_height: (self.width*0.005+self.height*0.005)/2
title: 'SHOW GESTOPPT'
title_size: (self.width*0.05+self.height*0.05)/2
title_align: 'center'
canvas.before:
Color:
rgba: 1,0,0,1
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
orientation: 'vertical'
Label:
text: 'Vor Fortfahren bitte die Positionen aller Besucher*innen und Mitarbeiter*innen checken.'
text_size: self.size
font_size: (self.width*0.07+self.height*0.07)/2
halign: 'center'
valign: 'center'
canvas.before:
Color:
rgba: 1,0,0,1
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
spacing: (self.height*0.02+self.width*0.02)/2
padding: (self.width*0.04+self.height*0.04)/2
canvas.before:
Color:
rgba: 1,0,0,1
Rectangle:
pos: self.pos
size: self.size
orientation: 'horizontal'
Button:
text: 'Springe zu Beginn'
font_size: (self.width*0.1+self.height*0.1)/2
color: 0,0,0,1
on_release: root.springBeginn()
background_normal: ''
background_color: 0.8,0.79,0.79,1
Button:
text: 'Show fortfahren ab hier'
font_size: (self.width*0.1+self.height*0.1)/2
color: 0,0,0,1
on_release: root.fortfahren()
background_normal: ''
background_color: 0.8,0.79,0.79,1