我正在使用 kivy.clock 为我的应用程序的一部分制作秒表,但它给出了属性错误
I am making a stop watch for one part of my app using kivy.clock but it's giving Attribute Error
我的应用程序中有多个 windows,“Tracker”就是其中之一。跟踪器将显示一个秒表,并通过在最后将总时间输入数据库来跟踪所花费的时间。 (我还没有编写数据库部分的代码。我现在只是将总时间打印到控制台)。
出于某种原因,我将 运行 保存为属性错误。
追踪器代码 Class:
class Tracker(Screen):
time = 0
start = False
def start_stop(self):
self.root.ids.start_stop_btn.text = ('Start'
if self.start else 'Stop')
self.start = not self.start
Clock.schedule_interval(self.add_time, 1)
def add_time(self, *args):
while self.start:
self.root.ids.sec_ones.text = str(int(self.root.ids.sec_ones.text) + 1)
if self.root.ids.sec_ones.text == '10':
self.root.ids.sec_tens.text = str(int(self.root.ids.sec_tens.text) + 1)
self.root.ids.sec_ones.text = '0'
if self.root.ids.sec_tens.text == '6':
self.root.ids.minute_ones.text = str(int(self.root.ids.minute_ones.text) + 1)
self.root.ids.sec_tens.text = '0'
if self.root.ids.minute_ones.text == '10':
self.root.ids.minute_ones.text = '0'
self.root.ids.minute_tens.text = str(int(self.root.ids.minute_tens.text) + 1)
self.time += 1
print(self.time)
以及 kv 文件中的跟踪器 Class:
<Tracker>:
name: "Tracker"
Label:
text: "Timer: "
font_size: 50
pos_hint: {'x': 0.1, 'top': 1}
size_hint: 0.2, 0.2
Label:
id: minute_tens
text: '0'
pos_hint: {'x': 0.36, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
id: minute_ones
text: '0'
pos_hint: {'x': 0.47, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text: ':'
pos_hint: {'x': 0.59, 'top': 0.99}
font_size: 40
size_hint: 0.05, 0.2
Label:
id: sec_tens
text: '0'
pos_hint: {'x': 0.65, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
id: sec_ones
text: '0'
pos_hint: {'x': 0.76, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Button:
id: start_stop_btn
text: 'Start'
pos_hint: {'x': 0.6, 'top': 0.77}
size_hint: 0.1, 0.06
on_release: root.start_stop()
SmoothButton:
text: "Back"
pos_hint: {'x': 0.8, 'top': 0.15}
size_hint: 0.15, 0.05
on_release:
app.root.current = "HomePage"
root.manager.transition.direction = "right"
错误如下所示:
应用程序本身运行。只有在单击开始按钮后才会出现此错误。
唯一的 class 有 root 的是 App
class 所以 Tracker 没有 root 属性
在 start_stop
方法中删除下面的“根”
def start_stop(self):
self.ids.start_stop_btn.text = ('Start'
if self.start else 'Stop')
我的应用程序中有多个 windows,“Tracker”就是其中之一。跟踪器将显示一个秒表,并通过在最后将总时间输入数据库来跟踪所花费的时间。 (我还没有编写数据库部分的代码。我现在只是将总时间打印到控制台)。
出于某种原因,我将 运行 保存为属性错误。
追踪器代码 Class:
class Tracker(Screen):
time = 0
start = False
def start_stop(self):
self.root.ids.start_stop_btn.text = ('Start'
if self.start else 'Stop')
self.start = not self.start
Clock.schedule_interval(self.add_time, 1)
def add_time(self, *args):
while self.start:
self.root.ids.sec_ones.text = str(int(self.root.ids.sec_ones.text) + 1)
if self.root.ids.sec_ones.text == '10':
self.root.ids.sec_tens.text = str(int(self.root.ids.sec_tens.text) + 1)
self.root.ids.sec_ones.text = '0'
if self.root.ids.sec_tens.text == '6':
self.root.ids.minute_ones.text = str(int(self.root.ids.minute_ones.text) + 1)
self.root.ids.sec_tens.text = '0'
if self.root.ids.minute_ones.text == '10':
self.root.ids.minute_ones.text = '0'
self.root.ids.minute_tens.text = str(int(self.root.ids.minute_tens.text) + 1)
self.time += 1
print(self.time)
以及 kv 文件中的跟踪器 Class:
<Tracker>:
name: "Tracker"
Label:
text: "Timer: "
font_size: 50
pos_hint: {'x': 0.1, 'top': 1}
size_hint: 0.2, 0.2
Label:
id: minute_tens
text: '0'
pos_hint: {'x': 0.36, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
id: minute_ones
text: '0'
pos_hint: {'x': 0.47, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text: ':'
pos_hint: {'x': 0.59, 'top': 0.99}
font_size: 40
size_hint: 0.05, 0.2
Label:
id: sec_tens
text: '0'
pos_hint: {'x': 0.65, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
id: sec_ones
text: '0'
pos_hint: {'x': 0.76, 'top': 0.99}
font_size: 40
size_hint: 0.1, 0.2
canvas.before:
Color:
rgba: (0.349, 0.349, 0.349, 1)
Rectangle:
pos: self.pos
size: self.size
Button:
id: start_stop_btn
text: 'Start'
pos_hint: {'x': 0.6, 'top': 0.77}
size_hint: 0.1, 0.06
on_release: root.start_stop()
SmoothButton:
text: "Back"
pos_hint: {'x': 0.8, 'top': 0.15}
size_hint: 0.15, 0.05
on_release:
app.root.current = "HomePage"
root.manager.transition.direction = "right"
错误如下所示:
应用程序本身运行。只有在单击开始按钮后才会出现此错误。
唯一的 class 有 root 的是 App
class 所以 Tracker 没有 root 属性
在 start_stop
方法中删除下面的“根”
def start_stop(self):
self.ids.start_stop_btn.text = ('Start'
if self.start else 'Stop')