kv 语言的 Kivy 屏幕管理器参考

2024-03-20

我正在尝试制作一个主菜单,让我在单击按钮时切换屏幕,但我不知道如何从按钮引用管理器。

我有一个主菜单页面的设置(在 kv 文件中):

<MainMenu>:  #AnchorLayout
     BoxLayout:
         Button:
             text: "button 1"
         Button:
             text: "change screen"
             on_release: root.manager.current = "OtherPage"

<MainWidget>:
    screen_manger: screen_manager
    ScreenManger:
        id: screen_manger
        Screen:
            name: "MainMenu"
            MainMenu
        Screen:
            name: "OtherPage"
            OtherPage    #this is defined in the kv file, just lazy to type it.

当我点击按钮时Change Screen, i get:

AttributeError: 'MainMenu' object has no attribute 'manager'

老实说,这并不让我感到惊讶。我想我可以通过用 python 代码编写所有布局并在中添加对屏幕管理器的引用来解决这个问题BoxLayout or MainMenu小部件,但我不知道如何在 kv 文件中执行此操作。


更好地理解问题后重新做答案:

您的 MainWidget 实例不知道 screen_manager 引用,它不会传递给它(并且在其规则中root引用 MainWidget 实例,而不是ScreenManager one.

如果你把manager: screen_manager根据声明MainWidget实例(第 15 行),然后添加一个manager将 ObjectProperty 添加到 MainWidget 的 python 声明中,然后您的绑定就会起作用。

python:

class MainWidget(Widget):
    manager = ObjectProperty(None)

kv:

<MainWidget>:
    screen_manger: screen_manager
    ScreenManger:
        id: screen_manger
        Screen:
            name: "MainMenu"
            MainMenu:
                manager: screen_manager
        Screen:
            name: "OtherPage"

那么它应该按照你想要的方式工作。

编辑:另外,qua-non 的这个 wiki 条目可能会有所帮助https://github.com/kivy/kivy/wiki/Linking-ScreenManager-to-a- Different-Widget https://github.com/kivy/kivy/wiki/Linking-ScreenManager-to-a-different-Widget

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

kv 语言的 Kivy 屏幕管理器参考 的相关文章

  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像

随机推荐

  • Django-tastypie:有关于 POST 中文件上传的示例吗?

    谁能给出一个关于使用 tastypie FileField 的完整示例 包括服务器端和客户端吗 这是我尝试过的 models py class Foo models Model img models ImageField upload to
  • VBA 从 OneDrive 下载文件

    我正在尝试从 OneDrive 下载文件 我是 API 概念的新手 这里是代码 Sub OneDrive Download Declare the Object Dim oRequest As Object Create and Assig
  • 从 Function 应用访问虚拟网络中的 Cosmos DB

    对这么长的帖子表示歉意 但我已经在这个问题上工作了几天 但似乎找不到解决方案 情况 我想通过将 Azure 中的 Cosmos DB 放置在虚拟网络 VNet 中来限制对它的访问 并且只允许通过 Function 应用进行访问 Approa
  • fipy 中的 Gmsh 网格并行执行

    我正在尝试解决 gmsh 网格上的并行问题 加载 geo 文件时发生错误 raise EnvironmentError Gmsh version must be gt 2 0 我安装的gmsh版本是2 8 3 我也尝试过2 13 2 10
  • 当用户想要应用程序中的另一种颜色时如何更改颜色? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 嗨 我制作了一个 Android 应用程序 我在想 如何实现通过单击按钮将整个应用程序更改为另一种颜色 例如从白色到黑色 有没有一种方
  • 调整 jQueryUI 对话框的高度,使其与内容一样高,最高可达最大值

    使用 jQueryUI 的对话框 我想弹出信息 我的问题是我想将对话框的高度设置为内容的高度 如果我不指定高度 那么效果很完美 高度根据内容的高度自动计算 那么问题是 如果内容非常高 对话框也会变得非常高并低于窗口 maxHeight 在这
  • TreeView 中的多项选择

    我正在使用 Windows 窗体TreeView在我的程序中进行控制 我想允许用户通过拖动鼠标指针来选择同一级别的多个节点 也称为 套索 选择 我认为没有标准TreeView允许这样做 我的问题是实现这一目标的最佳方法是什么 我是否必须在自
  • Ansible 检查作为变量提到的安装的磁盘空间

    我是 ansible 的新手 目前正在开发一个游戏 该游戏将查看远程计算机的磁盘空间是否已达到 70 的阈值 如果他们已经达到了 它应该抛出错误 我在以下位置找到了一个很好的例子 使用ansible管理磁盘空间 https stackove
  • 脚本缩小和与 MSBuild 的持续集成

    在我最近使用 C ASP NET 进行的一个项目中 我有一些相当复杂的 JavaScript 文件和一些漂亮的样式表 随着这些脚本资源规模的增长建议减少资源 http developer yahoo com yui compressor 当
  • 将 this.refs 作为 React.js 中 jsx 的属性传递

    我试图将 1 个节点作为另一个 React 组件的属性传递 如下所示 render function return div div div div
  • 在 Mac OSX 上卸载 Redis。安装更新后正在运行旧版本

    在Mac上 如何找到旧版本的Redis并将其完全卸载 我使用 OSX 并使用以下命令安装 Redisbrew install redis 由brew安装的版本状态redis 3 0 7 但是 当我运行命令时 redis server输出表明
  • 如何修复“超出最大调用堆栈大小”AngularJS

    我正在使用 AngularJs 和 Ui Router 我试图设置两个不同的主页 一个用于已登录的用户 另一个用于未登录的用户 但我收到以下错误 RangeError Maximum call stack size exceeded I r
  • 如何为 VS 扩展嵌套工具菜单按钮?

    我正在构建我的第一个 VS 扩展 因此我目前在该领域的技能相当于遵循教程和提出问题 该扩展用于加密 解密一部分web configWeb 应用程序项目的文件 我有 2 个命令 目前按钮设置在 vsct文件如下
  • 无法安装或运行应用程序 - System.Windows.Interactivity 版本 4.0.0.0

    我完全被困住了 搜索了又搜索了 我有一个对 System Windows Interactivity 版本 4 5 0 0 的引用 当我通过 ClickOnce 释放系统时 系统未安装并报告以下错误 无法安装或运行该应用程序 该应用程序需要
  • React-router-dom (v6) 与 Framer Motion (v4)

    我正在尝试将我的react router dom更新到v6 但它似乎会导致成帧器运动AnimatePresence出现问题 特别是退出过渡 在 App js 中 import Routes Route from react router d
  • 将项目添加到 Listview 控件

    我有一个listview在 C 中 具有三列 视图是详细信息 我需要向每个特定列添加一个项目 但我很难做到这一点 我已经尝试了几件事 这是我到目前为止所得到的 感谢您提前提供的任何帮助 Add the pet to our listview
  • 如何将上传的图像添加到对象数组中?

    我正在创建一个专辑网站只是为了学习 Javascript 我有输入框来添加专辑的标题 艺术家和年份 当按下 添加专辑 时 它会将此信息插入到名为 albumList 的对象上的数组中 然后在列表元素中显示该信息 我想知道是否可以允许用户上传
  • Angular2,TypeScript,如何读取/绑定属性值到组件类(在 ngOnInit 中未定义)[重复]

    这个问题在这里已经有答案了 有人可以建议我如何读取 绑定属性值到 component 类 这在 ngOnInit 方法中似乎未定义吗 这是一个 plunker 演示 http plnkr co edit 4FoFNBFsOEvvOkyfn0
  • 统计模型逻辑回归收敛问题

    我正在尝试在大型设计矩阵 约 200 列 上的 statsmodels 中运行逻辑回归 这些特征包括大量交互 分类特征和半稀疏 70 整数特征 虽然我的设计矩阵不是actually病态的 似乎有些接近 根据numpy linalg matr
  • kv 语言的 Kivy 屏幕管理器参考

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