0
我試圖讓用戶輸入一個時間,當他們啓動計時器時,用戶插入的時間將從該輸入時間開始倒計時。函數只需要2個參數(1給出)kivy定時器
但是我得到的錯誤updatetimer()究竟需要兩個參數(1給出)
什麼是從輸入返回值,以便它可以在整個腳本的其餘部分中使用的最佳方法。
這是我的工作代碼:
#!/usr/bin/kivy
import kivy
from random import random
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
from kivy.uix.popup import Popup
from random import random
from random import choice
from kivy.properties import StringProperty
import time
from kivy.clock import Clock
from functools import partial
check=0
Builder.load_string("""
<MenuScreen>:
GridLayout:
cols: 1
TextInput:
id: ti
Button:
text: 'do something!'
on_press: root.updatetimer(ti.text)
Button:
id: btn_0
text: "press me to start timer"
on_press: root.val0()
Label:
text:'timer'
Label:
id: timer
text:str(30)
""")
class MenuScreen(Screen):
def updatetimer(self,timeup):
return timeup
def val0(self):
global check
if(check==0):
check=check+1
Clock.schedule_interval(partial(my_callback, self), 1)
test = MenuScreen()
def my_callback(screen, dt):
t = test.updatetimer()
t -= 1
screen.ids.timer.text = str(t)
sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)
class TestApp(App):
def build(self):
return sm
預先感謝您的建議
在你的函數'my_callback(屏幕,DT)'你有下面的語句:'T =試驗。 updatetimer()'。對象'test'被認爲是第一個參數('self'),但你仍然有'timeup'。所以錯誤是有道理的 – VlassisFo
什麼應該t = test.updatetimer()被改變爲使得t等於用戶輸入的時間? – fastmhc