Kivy 中简单的 30 秒倒计时器

2024-06-20

我想在单击按钮后立即启动 30 秒计时器。

我的尝试:

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')

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

t=30
check=0

def my_callback(dt):
    global t
    t=t-1
    self.ids['timer'].text=str(t)

Builder.load_string("""
<MenuScreen>:
    GridLayout:
        cols: 1
        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 val0(self):
        global check
        if(check==0):
            check=check+1
            Clock.schedule_interval(my_callback, 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()

我无法弄清楚如何使用 kivy 时钟更改标签上的数据。目前我收到错误,表明 self 未定义。请指教。


错误是因为你引用了 self,但是这个isn't在 my_callback 函数中定义,您必须将其作为参数传递。

一种方便的方法是使用 functools.partial。您可以将时钟调度替换为:

from functools import partial
Clock.schedule_interval(partial(my_callback, self), 1)

并将 my_callback 声明为

def my_callback(screen, dt):
    global t
    t -= 1
    screen.ids.timer.text = str(t)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kivy 中简单的 30 秒倒计时器 的相关文章

  • 调用 on_pause 时暂停计时器似乎不起作用(Kivy)

    在 Android 上 我尝试在调用 on pause 时暂停 update time 方法 并在调用 on pause 时恢复它 on resume 被调用 换句话说 我试图在应用程序最小化时暂停计时器 并在应用程序最小化时恢复计时器 已
  • 通过 Kivy 在 Android 上运行 Tensorflow

    I found 这个答案 https stackoverflow com a 34495029 828184这让我想到了一个想法 你可以在 Android 手机上使用 kivy 而不是使用编译后的张量流图 这样你就可以使用直接与张量流图对话
  • 获取kivy中选定复选框的值

    test py import sqlite3 as lite from kivy uix screenmanager import Screen from kivy app import App from kivy lang import
  • Python kivy - 如何减少TextInput的高度

    我正在使用 kivy 为应用程序制作一个非常简单的 GUI 没什么复杂的 布局非常简单 尽管如此 我在 TextInputs 方面遇到了困难 它们总是以全高显示 我无法设法使它们调整到 合理的 文本高度 如高度 我正在使用 kv 文件样式
  • kv 语言的 Kivy 屏幕管理器参考

    我正在尝试制作一个主菜单 让我在单击按钮时切换屏幕 但我不知道如何从按钮引用管理器 我有一个主菜单页面的设置 在 kv 文件中
  • 如何在Python中使用kivy启用/禁用TextInput编辑

    我有一段代码 1 TextInput 值应该显示 但首先它不应该是可编辑的 单击相应的 CheckBox 后 TextInput 将可编辑 2 使用迭代 Label 和 TextInput 应该获得值 Label 和 TextInput 的
  • 如何在 Windows 上为 PyCharm 配置 Python Kivy?

    我在让 Kivy 在 Windows 7 上与 PyCharm 配合使用时遇到问题 我已成功通过 文件 gt 设置 gt Python 解释器 gt 路径 选项卡添加了大部分外部库 我使用的是 Kivy 版本的 Python 当我运行一个
  • 蟒蛇基维 |标签文本上的阿拉伯文本

    当我尝试输入阿拉伯语文本时出现问题 我的代码是 import kivy from kivy app import App from kivy uix textinput import TextInput class TestApp App
  • 如何使用按钮行为在kivy中制作圆形按钮?

    我认为有一种方法可以在 kivy 中做到这一点 而不是绕过 python 代码 我在 kv 文件中的代码 ButtonBehavior source round icon png 该应用程序崩溃说 AttributeError Button
  • KivyMD 顶部应用栏

    我正在尝试学习 Kivy 和 KivyMD 因为我想制作一个 Android 应用程序 但我陷入了第一个障碍 我想要一个工具栏 或者按照 KivyMD 文档的说法 TopAppBar 我正在尝试按照文档实现它 但出现错误Unknown Cl
  • 在 Anaconda 中安装 Kivy

    我正在尝试在 Windows 7 的 Anaconda 3 4 1 1 中安装 Kivy 但我找不到合适的用户指南来指导我如何安装 但到目前为止 我能够在链接上找到在 OS X 上安装它的说明https github com kivy ki
  • Kivy AttributeError:“超级”对象没有 ScreenManager 的属性“__getattr__”[重复]

    这个问题在这里已经有答案了 我正在尝试将方法绑定到微调器的文本值 最迟需要在显示 TestScreen 时进行绑定 如果我不使用 ScreenManager 这将有效 例如 如果 TestApp build 返回 TestScreen 而不
  • 在 Playstore 中发布现成的 Kivy 应用程序之前的流程?

    我已经做了buildozer android debug并拥有 apk文件已安装并且工作正常 至少针对一个 两个设备进行了测试 这也是半默认的buildozer spec 例如 域名仍然是org test但随着应用程序的名称进行了调整 有了
  • Kivy:加载长函数动画(避免冻结)

    我有这样的问题 我的应用程序在长函数期间冻结 如果用户在加载过程中多次单击 则会进行多次调用 视觉上让它看起来很大 from kivymd app import MDApp from kivy lang import Builder fro
  • 如何在 Kivy 中设置小部件/布局的最小允许宽度/高度?

    我有包含 3 个元素的 BoxLayout 我需要第一个和最后一个元素占据最小的可用空间 中间元素具有固定比例 1 1 因此当我调整窗口大小时 侧面元素变得太小并且内容会超出其中 我需要例如标签 或按钮 甚至不同元素的集合 文本始终insi
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • x11 - 导入错误:没有名为“kivy.core.window.window_x11”的模块

    目前我正在尝试构建一个我通过 buildozer 用 Python 和 Kivy 编写的应用程序 无论我在做什么 我都会遇到 window x11 的问题 即使我在代码中注释掉所有与 Windows 相关的内容或执行本文中描述的所有操作 这
  • Python3+Kivy+Plyer 推送通知图标问题

    我在使用 Android 的简单通知测试应用程序时遇到了一个奇怪的错误 错误 python AttributeError type object notification org notificator R drawable has no
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 运行工具链时出现“xcrun:错误:无法找到 SDK“iphonesimulator””

    我正在尝试将 Kivy 程序编译到 iOS 上 但是当我运行构建 Kivy 发行版的命令时 我不断收到此错误 xcrun 错误 无法找到 SDK iphonesimulator 我的电脑上有 xcode 到底是怎么回事 有点晚了 但我在尝试

随机推荐

  • 在 Angular 6 表单生成器中找不到具有未指定名称属性的控件

    当尝试使用 HTML 文件更新网格表时 我收到此错误消息 在这里 我使用了静态数据来显示表格 并从显示 primeng 表的其他组件导入 并且我添加了一个更新按钮 该按钮具有重定向到另一个页面以更新数据的功能 该问题出现在 HTML 文件的
  • 从应用程序启动 iPhone 设置屏幕?

    我正在开发一个应用程序 我希望按下按钮时 iPhone 设置屏幕应该打开 苹果有访问限制吗 到底能不能 如果能的话怎么办 不 你不能那样做 但是 作为替代方案 您可以使用这个框架 http www inappsettingskit com
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 如何使用 RX 应用宽限时间?

    我有一个Observable
  • “Chrome 扩展抛出 CRX 文件错误“CRX_REQUIRD_PROOF_MISSING”

    我有 Chrome 扩展程序并创建crx使用开发者模式的文件 我上传了crx文件到某个内部 url www xyz com internal crx 每当我尝试使用 URL 安装扩展程序 不在开发人员模式下 时 都会抛出错误包无效 CRX
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 使用predictNLS围绕R中的拟合值创建置信区间?

    我想使用 R 中 propogate 包中的 PredictNLS 围绕一大组拟合值构建置信区间 作为示例 我将使用它们在函数描述中引用的数据集 https rdrr io github anspiess propagate man pre
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • Coldfusion 跨站点身份验证

    好的 在我正在开发的 Coldfusion 网站上 我刚刚安装了一个名为 Galleon 的第三方 开源 CF 论坛 我不久前问过类似的问题 但现在我们已经取得了一些进展 目前的问题是 它不会识别父站点本身存在的任何变量 会话等 论坛本身存
  • 无法运行 npm install

    In here http devdocs magento com guides v2 0 frontend dev guide css topics css debug html它说要跑npm install 但是当我运行时出现此错误sud
  • 仅从 PE 文件中提取 .text 部分

    我正在尝试从 PE 文件 dll 中提取 text 部分 即代码 Linux 或某些 python 或 ruby 库中是否有任何简单的工具可以让我轻松地完成此操作 我自己解决了 我使用 pefile python 模块提取文本部分 并使用
  • ASP.NET Core 2.1 中不使用正则表达式的 URL 重写

    我的图标位于 images favicon ico而不是根 在Startup cs我可以添加重定向以避免 404 app UseRewriter new RewriteOptions AddRedirect favicon ico imag
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • Kivy 中简单的 30 秒倒计时器

    我想在单击按钮后立即启动 30 秒计时器 我的尝试 usr bin kivy import kivy kivy require 1 7 2 from random import random from kivy app import App