Kivy - 另一个屏幕上的滑块类值更改

2024-01-15

我有一个滑块,其值会更改标签。这很容易理解。现在的问题是我想使用这个值在另一个屏幕上显示。最终,我希望滑块根据在滑块上选择的值在另一个屏幕上显示 1-16 个图像。下面是我现在所拥有的,它适用于该屏幕,但如何让这个值显示在另一个屏幕上?我知道我必须创建一个类,它已经进行了多次尝试,但每次尝试似乎都让我感到困惑,而不是更好地理解它。

<NewGameScreen>:
    name: 'newgame'
    BoxLayout:
        orientation: 'vertical'
        height: 100       

        Label:
            text: 'New Game'
            font_size: 70
                Label:
                    text: 'Players'
                    font_size: 30
                    pos: 300, 400

                Slider:
                    id: s1
                    pos: 420, 400
                    width: '250dp'
                    min: 1
                    max: 16
                    step: 1
                    value: 1
                    on_value: s1.value = self.value

                Label:
                    text: '{}'.format(s1.value)
                    font_size: 30
                    pos: 670, 400

您可以通过底层传递值ScreenManager。一个工作示例:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

kv = '''
<NewGameScreen>:
    name: 'newgame'
    BoxLayout:
        orientation: 'vertical'

        Slider:
            id: s1
            min: 1
            max: 16
            step: 1
            value: 1
            on_value: 
                root.manager.get_screen('options').label.text = str(self.value)
        Button:
            text: 'Options'
            on_press: 
                root.manager.transition.direction = 'left'
                root.manager.current = 'options'

<OptionScreen>:
    label: label
    name: 'options'
    orientation: 'vertical'
    BoxLayout:
        Button:
            text: 'Go back'
            on_press: 
                root.manager.transition.direction = 'right'
                root.manager.current = 'newgame'

        Label:
            id: label
            text: '1'

'''
Builder.load_string(kv)

class NewGameScreen(Screen):
    pass

class OptionScreen(Screen):
    pass

class TestApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(NewGameScreen())
        sm.add_widget(OptionScreen())
        return sm

if __name__ == '__main__':
    TestApp().run()

Update:

扩展示例(根据滑块值添加按钮):

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty

kv = '''
#:import Label kivy.uix.label.Label
<NewGameScreen>:
    name: 'newgame'
    slider: slider
    BoxLayout:
        orientation: 'vertical'

        Slider:
            id: slider
            min: 1
            max: 16
            step: 1
            value: 1
            on_value: root.update_buttons()

        Button:
            text: 'Options'
            on_press: 
                root.manager.transition.direction = 'left'
                root.manager.current = 'options'

<OptionScreen>:
    layout: layout
    name: 'options'
    BoxLayout:
        Button:
            text: 'Go back'
            on_press: 
                root.manager.transition.direction = 'right'
                root.manager.current = 'newgame'
        BoxLayout:
            orientation: 'vertical'
            id:layout
            Button:
                text: "1"

'''
Builder.load_string(kv)

class NewGameScreen(Screen):
    slider = ObjectProperty(None)
    def update_buttons(self, *args):
        layout = self.manager.get_screen('options').layout
        layout.clear_widgets()
        for i in range(int(self.slider.value)):
            layout.add_widget(Button(text=str(i+1))) 


class OptionScreen(Screen):
    layout = ObjectProperty(None)


class TestApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(NewGameScreen())
        sm.add_widget(OptionScreen())
        return sm

if __name__ == '__main__':
    TestApp().run()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kivy - 另一个屏幕上的滑块类值更改 的相关文章

  • 如何根据 URL 路径添加 CSS 类?

    如何根据我所在的路径将 CSS 类添加到 div 中 包括如果我在其中包含 则不应该出现问题 div class popup ul li a href vs Example 1 a li li a href bod Example 2 a
  • 在其抽象超类中使用子类的泛型类型?

    在我的代码中有以下抽象超类 public abstract class AbstractClass
  • java中类的命名约定 - 全部大写

    在 Java 中 当类全部大写时 如何命名它 例如 如果我想创建一个班级来选择某些人成为 VIP 我应该将类命名为 VIPSelector 还是 VipSelector Thanks 你的两个选择都有效 类的主要目标是让它们以大写字母开头
  • 初始化父类时如何返回子类的新实例?

    给定一个类层次结构如下 class A def initialize param if param 1 then initialize and return instance of B else initialize and return
  • Tkinter 绑定 Mac OS“command+q”

    当我按 Command q 时 我试图 停止 根窗口退出 但这是不可能的 其他快捷键在我的 Mac 操作系统上有效 即使在 Windows Linux 中 Alt F4 绑定也可以 捕获 但在 Mac 操作系统中对我来说是不可能的 有任何想
  • Buildozer Numpy RuntimeError:工具链损坏:无法链接简单的 C 程序

    用 Python 编写我的第一个 Android 应用程序并使用 Buildozer 对其进行打包 因为稍后在项目中需要使用numpy 所以我尝试打包以下测试代码 import numpy import kivy kivy require
  • 从模板类创建对象时出错

    我一直在尝试找到一种方法 从 C 中的多元正态分布中采样随机向量 同时具有均值向量和协方差矩阵 就像 Matlab 的那样mvnrnd功能有效 我找到了实现此功能的类的相关代码这一页 http lost found wandering bl
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • C++:获取器和设置器?

    我正在尝试编写一些代码来为以下数据的 ID 号 名字 姓氏 期中成绩和期末成绩创建 getter 和 setter 这些数据位于我正在编写的班级的文本文件中 10601 ANDRES HYUN 88 91 94 94 89 84 94 84
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • 调用类实例方法 onclick javascript

    我有一个 javascript 文件 其中包含包含方法函数的类 我想知道如何从 onClick 事件调用类实例方法 function MyClass this instanceData Display Me this DisplayData
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 如何为类本身(而不是类的实例)选择自定义字符串表示形式?

    考虑这个类 class foo object pass 默认的字符串表示形式如下所示 gt gt gt str foo
  • C++中有没有办法让派生类重写基类静态方法?

    我有一个多次派生的基类 B D1 D2 等 在类 B 中 我希望有一个静态方法 getInfo 它返回一个 BaseInfo 类 基本上是一个包含类 B 的默认成员值的类 因此将其设为静态是有意义的 因为不需要特定的实例 现在 有没有办法强
  • 自定义类的重写 bool() [重复]

    这个问题在这里已经有答案了 我想要的只是 bool myInstance 返回 False 并且 myInstance 在 if or and 等条件下计算为 False 我知道如何覆盖 gt 我试过这个 class test def bo
  • 防止在派生类中调用基类实现的接口方法 C#

    是否可以在基类中实现接口并允许在第一个派生类级别调用 覆盖已实现的方法 但阻止从任何进一步的派生类调用它 public interface IInterfaceSample bool Test public class Base IInte
  • Docker 错误绑定:地址已在使用中

    当我跑步时docker compose up在我的 Docker 项目中 它失败并显示以下消息 启动用户层代理时出错 监听 tcp 0 0 0 0 3000 绑定 地址已在使用中 netstat pna grep 3000 显示这个 tcp
  • Ruby/Rails - 如何创建类并从控制器访问它

    我一直在尝试使用一些不同的 gem 在 Rails 3 中显示谷歌地图 但遇到了一些问题 幸运的是我发现了这个https github com YouthTree bhm google maps https github com Youth

随机推荐

  • 如何将导航栏 (

    我正在开发一个代码 其中有不同的选项级别 我希望其中一个选项显示带有两个选项卡的导航栏 一个用于搜索客户 另一个用于添加客户 我已经有了loadView loadCustomersView and loadAddCustomerView在我
  • 动态更新原型 selected.js

    我是 Prototype 的新手 我无法真正理解此处提供的极简文档http harvesthq github com chosen http harvesthq github com chosen 它说要动态更新 selected js 我
  • 来自Google的算法采访

    我是一个长期潜伏者 刚刚接受了谷歌的采访 他们问了我这个问题 许多艺术家想要在皇家阿尔伯特音乐厅演出 您负责安排时间 他们的音乐会 在大厅表演的请求按照先到先得的原则满足 政策 每天只能进行一场演出 而且不能举办任何音乐会 彼此相隔 5 天
  • .net 中的异步套接字是无线程的吗?

    From http msdn microsoft com en us library bbx2eya8 aspx http msdn microsoft com en us library bbx2eya8 aspx看起来 这种类型的套接字
  • 除非您更新 Google Play 服务(通过 Bazaar),否则此应用程序不会运行

    我正在测试适用于 Android 的新 Google Maps API V2 当应用程序启动时我收到此消息 这是在 4 1 模拟器上运行的 这是我的AndroidManifest xml file
  • Hibernate的sessionFactory是线程安全的原因

    我了解到Hibernate的会话工厂据说是线程安全的 任何人都可以阐明它如何在 Web 应用程序中充当线程安全以及所有方法如何同步或其他什么 SessionFactory 的内部状态是不可变的 http docs jboss org hib
  • OleDb SQL 查询中的两个内部联接[重复]

    这个问题在这里已经有答案了 我正在尝试使用 OleDbCommand 对 Access 数据库 accdb 进行 SQL 查询 虽然这个命令工作正常 在OleDbCommand ExecuteReader string command SE
  • JSF 语言环境:浏览器定义的语言似乎被忽略

    目前 我的团队正在使用 Java 开发 Web 2 0 应用程序 我们使用 JSF 作为表示层 我们从表示层开始 因此尚未添加业务和数据层 我们使用的技术 JSF 莫贾拉 2 0 3 Primefaces 2 1 JSF 组件库 春季安全3
  • 在 .Net Core 应用程序中使用 SharePoint CSOM

    我想通过 Net Core MVC 应用程序上的 CSOM 库从 SharePoint 列表中获取数据 在 Net Framework 应用程序上实现这一点绝对没有问题 因为 Microsoft SharePoint Client 库包含
  • SVN 客户端错误“[...] 的服务器不支持 HTTP/DAV 协议”

    我正在 64 位系统上从 Windows 7 更新到 Windows 10 我在 Windows 7 机器上从 Subversion 服务器更新和签出项目没有任何问题 我下载了最新的 64 位版本并将其安装在 Windows 10 机器上
  • 对 qr.Q() 感到困惑:什么是“紧凑”形式的正交矩阵?

    R has a qr 函数 它使用 LINPACK 或 LAPACK 执行 QR 分解 根据我的经验 后者快 5 返回的主要对象是一个矩阵 qr 其中包含上三角矩阵 R 即R qr upper tri qr 到目前为止 一切都很好 qr 的
  • 将服务注入到类(而不是组件)Angular2

    我正在努力寻找一种将服务注入到 angular2 中的类对象中的方法 注意 这不是一个组件 只是一个类 export class Product id number name string manufacturer string const
  • 为什么自动装箱的整数和 .getClass() 值 ==-相等,而不仅仅是 .equals()-相等?

    也许我在 Java 上工作太久了 却没有真正理解它的一些基础知识 我确实明白 用于对象引用相等并且 equals 是为了对象值相等 比较Integers Integer x 1 y 1 System out println x y true
  • TFS 2015 - 等待请求代理

    因此 度假回来后 我的构建服务器不想再运行任何构建 它只是卡在了等待可用的代理 等待请求代理如果我取消它 我觉得它会卡住正在取消构建 因为在我取消构建后什么也没有发生 等待消息仍然存在 但构建不在构建队列中 代理池中的所有代理均呈绿色 且后
  • 改进 Dinic 算法的动态树数据结构

    我想将 Dinic 算法应用于动态树 但我找到的来源很少 特别是关于动态树 如果有一个带有详细解释的良好源代码或一些使用动态树的简单源代码 那就太好了 有人遇到过类似的事情吗 提前致谢 改进的基本思想是避免 Dinic 算法过早悲观 与预流
  • 在 div 中显示“显示更多”按钮而不是垂直滚动条

    我有一个固定高度的 div 其中包含一些 html 内容 当这个高度溢出时 我不希望出现滚动条 而是在 div 底部出现一个按钮 只有当你按下这个按钮时 所有的内容才会被显示 显然滚动条会自动显示 我知道有一个名为 溢出 的属性 您可以使用
  • 自动完成将值而不是标签应用于文本框

    我在尝试让自动完成功能正常工作时遇到了麻烦 对我来说一切看起来都不错但是
  • PopoverPresentationController 为零

    创建了一个单视图应用程序 我在其中放置了一个按钮 现在单击按钮我需要将 tableView 显示为弹出窗口 TableViewController 是在 xib 中创建的 问题是 tableViewController popoverPre
  • 使用任务管理器生成转储文件

    我知道在 Vista 中 您可以通过 goigg 到任务管理器 gt 进程 gt 右键单击 进程来生成转储文件 此选项在 Windows 7 Windows 2003 Windows 2008 等其他版本的 Windows 中是否可用 它在
  • Kivy - 另一个屏幕上的滑块类值更改

    我有一个滑块 其值会更改标签 这很容易理解 现在的问题是我想使用这个值在另一个屏幕上显示 最终 我希望滑块根据在滑块上选择的值在另一个屏幕上显示 1 16 个图像 下面是我现在所拥有的 它适用于该屏幕 但如何让这个值显示在另一个屏幕上 我知