- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Kivy 中创建一个秒表。我已经在 Sublime Text 3 上完成了一个骨架(如下面的代码所示)。当我在 Sublime Text 上运行代码时,一个窗口打开,但 Python 在 4.1 秒内崩溃。
这里是有问题的代码:
import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.properties import NumericProperty
from kivy.lang import Builder
import time
class CrudeTimerGrid(GridLayout):
# Initialise timer with input start time
def __init__(self,start_time):
time = NumericProperty(start_time)
def tick(self):
if self.time > 0:
self.time -= 1
else:
pass
def start(self):
Clock.schedule_interval(self.tick,1)
def pause(self):
Clock.unschedule()
# incomplete code
def reset(self):
pass
class CrudeTimerApp(App):
def build(self):
# Testing timer by initialising timer with 20 seconds
return CrudeTimerGrid(20)
Builder.load_string('''
<CrudeTimerGrid>
id: timer
rows: 2
# insert formatting here
BoxLayout:
Label:
text: timer.time
BoxLayout:
Button:
text: "Start"
on_press: timer.start()
Button:
text: "Pause"
on_press: timer.pause()
Button:
text: "Reset"
on_press: timer.reset()
''')
CrudeTimerApp().run()
也是 StackOverflow 的新手,所以如果需要任何其他信息,请告诉我。感谢您的帮助!
最佳答案
主要问题在这里:
def __init__(self,start_time):
time = NumericProperty(start_time)
您应该在类级别定义 Kivy 属性,请阅读 this .如果您这样更改代码,代码将停止崩溃:
class CrudeTimerGrid(GridLayout):
time = NumericProperty(0)
您还应该做一些其他更改才能使其最终正常工作,这是完整的代码版本:
import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.properties import NumericProperty
from kivy.lang import Builder
import time
class CrudeTimerGrid(GridLayout):
time = NumericProperty(0)
def tick(self, *_):
if self.time > 0:
self.time -= 1
else:
pass
def start(self, *_):
self.cb = Clock.schedule_interval(self.tick,1)
def pause(self):
Clock.unschedule(self.cb)
# incomplete code
def reset(self, *_):
pass
class CrudeTimerApp(App):
def build(self):
# Testing timer by initialising timer with 20 seconds
return CrudeTimerGrid(time=20)
Builder.load_string('''
<CrudeTimerGrid>
id: timer
rows: 2
# insert formatting here
BoxLayout:
Label:
text: str(timer.time)
BoxLayout:
Button:
text: "Start"
on_press: timer.start()
Button:
text: "Pause"
on_press: timer.pause()
Button:
text: "Reset"
on_press: timer.reset()
''')
CrudeTimerApp().run()
更新:
Any idea why 2 arguments are input into tick in the first place?
tick
传递给 Clock.schedule_interval
被调用。这个函数使用额外的参数来安排它的回调(就像 Kivy 中的许多其他函数一样)。您可以在 documentation 中阅读更多相关信息.
You defined self.cb in order to reference it in Clock.unschedule, correct?
您可以多次调用 Clock.schedule_interval
以不同的时间间隔安排许多不同的功能。但是 Clock.unschedule
怎么知道要取消调度它们中的哪一个呢?为了使 Clock.unschedule
知道要取消安排什么,您应该将 Clock.schedule_interval
返回的值传递给它。这是 documentation section哪里描述了这个机制。
关于python-3.x - Kivy 的新手尝试制作秒表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060052/
我正在学习如何开发,我正在尝试使用 Javascript 为我的 html 正文实现秒表 var c = 0.0; function tempo() { document.getElementBy
我正在尝试使用 JavaScript 制作一个秒表。我有日期来填充正确的信息,但我的秒表不工作。我单击开始,数字永远不会从 0 移动,我想让它在 MS 中立即递增。我也有 JS 和 HTML 的代码。
我正在制作一个简单的秒表。我面临的问题是当我再次开始时从上次停止的地方开始/恢复秒表。我试图保留耗时的值,但没有运气 演示= import UIKit class ViewController: UI
我一直在尝试使用 JavaScript 创建一个简单的秒表脚本,以显示已经过去的秒数、分钟数和小时数。 理想情况下,我希望时间显示如下: hh:mm:ss 使用 JavaScript,我无法找到一种内
大家好,我最近开始学习 React,但遇到了一些问题。我正在尝试制作简单的 react 应用程序,我正在制作的组件之一是秒表。现在,我在使用从父组件传递给秒表组件的 Prop 时遇到问题。这是我的应用
我有一个代码可以正常工作,但我认为如果我继续遵循相同的策略来做所有相同的事情,它会无缘无故地在处理器上过载 我有一个代表时间的变量,这个变量在游戏对象的速度高于 0.5f 的每一帧中都为 0,所以我不
我想创建一个跟踪任务时间的 ASP.NET WinForms 应用程序。我需要能够编写表单,以便将任务添加到数据库、在新选项卡中打开它,以及能够开始、暂停和停止任务。完成后,我需要计算完成任务所需的时
我正在使用我在此处找到的 stopwatch 代码: http://www.kellishaver.com/projects/stopwatch/ (function($) { $.fn.st
本文实例讲述了java实现的计时器【秒表】功能。分享给大家供大家参考,具体如下: 应用名称:java计时器 用到的知识:java gui编程 开发环境:win8+eclipse+jdk1.8
众所周知秒表 在将在所有内核上运行的多线程异步应用程序中可能存在问题。 On a multiprocessor computer, it does not matter which processor
我想知道测量 C++ 中某些代码的执行时间的最佳方法是什么。是否有内置的秒表(.Net)类似类?我正在VS2010上开发C++。我如何(如果)在我的 C++ 项目中使用 .Net 库?先感谢您。 最佳
我已经实现了一个 SIP Servlet,其中我从客户端接收两种类型的消息。我可以接收高优先级消息和低优先级消息,当我读取消息的 URI 时,我将其分开,如下面的代码所示。我必须实现一个基本的秒表,它
我使用pyqt库在python中制作了一个秒表(chronometre),但是当我按下重置按钮然后按下开始按钮时遇到问题,我看到时间增加了两倍,然后重复我看到增加的过程三人一组等等。 我不明白为什么会
我在 jQuery 中发现了这个有用的 JS,用于具有小时、分钟和秒的秒表。 http://daokun.webs.com/jquery.stopwatch.js 问题是,小时计数器对我来说毫无用处,
我想从我的应用程序启动 android 附带的秒表应用程序,但不知道如何执行此操作。我不想自己创建秒表,因为它需要在我关闭我的应用程序时继续运行。 最佳答案 在 Android 4.1(或可能是 4.
我正在开发一个简单的秒表,问题是当用户按下主页按钮时,线程女巫计算时间卡住我如何避免让线程在后台运行? 最佳答案 一个更简单的解决方案是使用 system.currentTimeMillis 记录秒表
我这里有秒表所需的代码。我想要的只是摆脱这里的 Swing 部分并在控制台中显示相同的输出。有人可以帮忙吗? import java.awt.event.*; import javax.swing.*
我正在编写一个用于计时的秒表应用程序,我需要检查时钟是否超过某个时间间隔(例如 20:00 - 06:00),在这种情况下,将当前耗时添加到我设置的 TimeInterval 变量中稍后将存储在数据库
我正在使用 NSTimer 制作秒表。如果用户切换到不同的应用程序,我希望它继续工作,但现在它只在应用程序运行时工作。我认为通过在计时器启动时记录时间戳来解决这个问题可能非常简单,但我不确定如何将其与
我正在尝试制作一个简单的 Java 应用程序来计算时间,并能够停止和启动计时器。但是,标签不会更新,当我按下开始时,它会卡住。 你能帮我找出问题所在吗? package random; import
我是一名优秀的程序员,十分优秀!