带参数的 Kivy 按钮绑定函数

2023-12-31

我正在尝试学习如何在 Kivy 中创建应用程序,但在向函数发送参数时遇到问题。我想将输入中的文本发送到函数并打印它。有人可以告诉我该怎么做吗?

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button


class TutorialApp(App):
    def gratulation(self, *args):
        print args

    def build(self):
        boxLayout = BoxLayout(spacing=10,orientation='vertical')
        g = TextInput(text='Enter gratulation', 
                      multiline=False,
                      font_size=20,
                      height=100)
        button = Button(text='Send')
        button.bind(on_press=self.gratulation)  

        boxLayout.add_widget(g)
        boxLayout.add_widget(button)
        return boxLayout

if __name__ == "__main__":
    TutorialApp().run()

您必须从“g”获取文本,然后将其发送到按钮回调,有两种方法可以做到这一点,通过 lambda 函数,或调用应用到它的类方法。

拉姆达版本:

from __future__ import print_function ##Need to import this for calling print inside lambda

def build(self):
    boxLayout = BoxLayout(spacing=10,orientation='vertical')
    g = TextInput(text='Enter gratulation', 
                  multiline=False,
                  font_size=20,
                  height=100)
    button = Button(text='Send')
    buttoncallback = lambda:print(g.text)
    button.bind(on_press=buttoncallback)  
    ...

部分版本:

from functools import partial ##import partial, wich allows to apply arguments to functions returning a funtion with that arguments by default.
def build(self):
    boxLayout = BoxLayout(spacing=10,orientation='vertical')
    g = TextInput(text='Enter gratulation', 
                  multiline=False,
                  font_size=20,
                  height=100)
    button = Button(text='Send')
    buttoncallback = partial(self.gratulation, g.text)
    button.bind(on_press=buttoncallback)  
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带参数的 Kivy 按钮绑定函数 的相关文章

随机推荐

  • 如何在asp.net中获取当前的windows用户?

    我尝试了很多代码 它在我的本地服务器上成功运行 但我尝试将远程服务器放在远程服务器上 他们得到另一个字符串 例如 IIS APPPOOL 服务器名称 我更改了 IIS 管理器中的某些设置 但失败了 我如何获取远程服务器中的用户名 我尝试了一
  • Silverlight转WCF跨域异常,但clientaccesspolicy.xml读取成功

    clientaccesspolicy xml
  • 常规静态类

    这个文件sample groovy 中的 static 有什么作用 static class froob 不管有没有 static groovy 代码都可以很好地编译 绝对没有区别 这种情况下的静电被忽略 为了进行测试 我创建了一个 gro
  • Pandas read_excel 返回 PendingDeprecationWarning

    我一直在使用以下命令将 Excel 文件导入为 Pandas 数据框read excel到目前为止 功能尚未出现明显问题 然而 我刚刚意识到 在最近的一些更新之后 我收到以下警告 usr local lib python3 7 site p
  • 如何使用 Java API 设置消息选择器?

    我正在尝试编写一个简单的测试用例 以根据消息属性从队列中提取消息 命中 7 5 0 3 QMgr 并使用 7 5 0 3 客户端 jar 我在网上看到的所有内容都表明我需要在打开队列时指定消息选择器 我对此很满意 但我只看到两种打开它的方法
  • 优化 PHP 字符串连接 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这篇文章实际上并不是一个问题 但分享
  • SQLSTATE[23000]:违反完整性约束:19 NOT NULL 约束失败:

    尝试在 Laravel 上创建一个待办事项列表应用程序 但是当我尝试单击按钮创建一个新的待办事项列表时 我收到此错误 SQLSTATE 23000 Integrity constraint violation 19 NOT NULL con
  • jQuery 中的 ConfigurationManager.AppSettings

    我正在使用 mvc3 c 配置管理器中的应用程序设置在控制器中运行良好 但我想在我的 jquery 中使用这些常量 有没有办法在 jQuery 中使用 ConfigurationManager AppSettings 提前致谢 希望这对您有
  • 多部分/表单数据与应用程序/八位字节流

    我正在创建一个简单的REST API用于上传文件 从其他 API 中我发现他们使用 multipart form data 内容类型 但对我来说 它看起来像 application octet stream 就简单多了 如果我不打算随文件发
  • 为什么alloc方法可以增加retain count

    当我们打电话时alloc对于一个类 我知道对象的计数将 1 例如 NSObject obj NSObject alloc obj的引用计数将为1 我阅读了源代码 但找不到一些代码可以告诉我为什么alloc可以添加引用计数 还有一些博客说al
  • 如何将依赖项注入存储库基类

    各种种类 EnableXXXRepositorySpring Data 的注释允许您为存储库指定自定义基类 该基类将用作存储库中方法的实现 如果这样的基类需要访问其他beanApplicationContext如何注射这些药物 它不能开箱即
  • 创建新数据库时的最佳 ANSI 选项

    我正在为我们的生产环境在 SQL Server 2012 上创建一个新数据库 当我使用 SQL Server Management Studio 中的 新数据库 选项并生成输出时 我得到 CREATE DATABASE AAA CONTAI
  • makefile:如何链接不同子目录中的目标文件并包含不同的搜索路径

    我想更改测试代码的位置 tsnnls test DKU c 并且我无法在 makefile 中进行更改以正确反映此文件夹更改 一些帮助将不胜感激 我有两个问题 1 如何链接不同子目录中的目标文件 2 包含不同的搜索路径 在我的示例中为 3
  • 如何按嵌套多重集中的值排序?

    An 先前的问题 https stackoverflow com questions 69552492 jooq multiset order result set via conditions on multiset涵盖如何使用 jOOQ
  • 在 React Native 应用程序中读取 NFC 标签

    我想制作一个可以读取 NFC 标签的反应本机应用程序 我在用反应本机 NFC但无法让它工作 谁能帮助找出我做错了什么并指出我正确的方向 Code in 索引 android js如下 import React Component from
  • 用类装饰器覆盖构造函数?

    如何使用 ES7 类装饰器重写构造函数 例如 我想要这样的东西 injectAttributes foo 42 class Bar constructor console log this foo 哪里的injectAttributes装饰
  • 使用多线程访问同一个字符串(StringBuilder)

    我的问题是 如果我有时在同一个字符串上使用多线程 该字符串不会被替换 我在记事本上写了这个 所以语法可能是 wrong 使用 System Thread 当然还有其他 class private static StringBuild con
  • 如何在 C++ 中使用 malloc() [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何使用malloc 在C 程序中
  • 在 javaScript 中使用 for 循环时,如何为特定元素设置属性?

    下面我有一个分配给变量的函数 本质上我让它工作 将属性应用于元素集合 我的问题是我希望将设置为属性的元素与我传递给函数的字符串相匹配 我知道问题就在这里 document links i setAttribute target blank
  • 带参数的 Kivy 按钮绑定函数

    我正在尝试学习如何在 Kivy 中创建应用程序 但在向函数发送参数时遇到问题 我想将输入中的文本发送到函数并打印它 有人可以告诉我该怎么做吗 from kivy app import App from kivy uix boxlayout