0
ラベルを更新して現在の残り時間を表示するタイマーを作成しようとしています。私はあなたが2分タイマーを開始する必要がありますボタンを持っています。何らかの理由でラベルが更新されません。私がこれをやっているやり方に何か問題がありますか?ここでwhileループでkivyのラベルが更新されない
は私のコードです:
import time
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
Builder.load_string("""
#:import sla kivy.adapters.simplelistadapter
#:import label kivy.uix.label
<ListItemButton>:
selected_color: 0, 0, 1, 1
deselected_color: 0, 0, 0, 1
<MenuScreen>:
FloatLayout:
#cols: 2
#rows: 2
size: 800,480
Label:
id: output
text: "0 min 0 s"
font_size: 60
size_hint: None, None
size: 400, 100
pos: 200,425
Button:
id: statheader
text: "2 min"
font_size: 40
size_hint: None, None
size: 600,100
pos: 150,800
background_color: 0,0,1,1
on_press: root.startTimer(int(2))
""")
class MenuScreen(Screen):
tww = 0
def startTimer(self, what):
self.tww = what*60
while self.tww > 0:
minute = self.tww/60
print(minute)
second = self.tww - minute*60
print(second)
self.ids.output.text = str(minute) + " min " + str(second) + " s"
self.tww -= 1
time.sleep(1)
sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
は何か他のものはself.ids.output.text
がなければならないことはありますか?
バマー。答えをありがとう – fastmhc