问题标签 [kivy-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4603 浏览

python - kivy:单击 1 次按钮触发多个功能

我有这段代码,它可以工作,但我确信这不是正确的方法。在我的 .kv 中,一个按钮会在我的 main.py 中触发两个函数。

我很棒的项目的下一步将是添加更多功能,当单击同一个按钮时必须关闭这些功能。这将导致一个相当长的列表,例如:

这在我看来是非常丑陋的代码,但我还没有找到一个很好的方法来做到这一点。

任何人?提前致谢!

;-) 埃里克

0 投票
0 回答
256 浏览

python-2.7 - 支持花园图标题和图例——kivy

对图表标题和图表图例的支持是否仍未包含在花园图表 API 中?是否有显示这些值的解决方法?

0 投票
1 回答
1537 浏览

android - 在 android python 应用程序上使用 paramiko

我正在使用 buildozer 编译 Python 应用程序,我可以毫无问题地构建 APK。在我提出的要求中:

但是应用程序没有启动。如果我评论“import paramiko”这一行,应用程序就会启动,但显然不是我的选择。在 PC 上 paramiko 工作没有问题。我知道,例如 sqlite3 必须在 kivy 的要求之前出现,对吧?我尝试了许多不同的选项,例如“sqlite3,paramiko,kivy,datetime,plyer”或“sqlite3,kivy,paramiko,datetime,plyer”。我该怎么办?

版:

第 2 版:

使用 adb logcat | grep python(我可以从终端复制):

0 投票
1 回答
328 浏览

button - 如何更改 Kivy AccorditionItem 按钮的颜色?

我不知道title baranAccorditionItem是否是一个真正的按钮(它似乎在视觉上是相同的),但我需要做的是可以在普通按钮中完成的相同操作,如下所示:

我试图将这种礼节应用于 anaccorditionitem但显然它没有奏效。

因此,如何应用background_color在按钮元素的“按钮”(标题栏)元素中找到的属性AccordionItem

谢谢

0 投票
1 回答
1241 浏览

python - 我正在尝试为 Python 3.4 安装 pip,安装命令时显示“语法无效”?

我正在尝试为 Python 3.4 安装 pip,安装命令时显示“语法无效”?

这是命令列表:

0 投票
1 回答
1780 浏览

python - Kivy 触摸和键盘事件传递到桌面

我正在使用Kivy框架在 Python 3 中开发 UI 应用程序。Kivy 应用程序是全屏的。每当我使用物理键盘执行触摸事件或键入时,底层桌面环境将接收触摸和键盘事件以及我的 Kivy 应用程序。

例如,如果我在桌面上打开一个文本文件,然后运行我的 Kivy 应用程序,我可以在 Kivy 应用程序处于前台(全屏)时盲目地在文本文件中键入文本。Kivy 应用程序会忽略物理键盘输入,因为我在配置文件中keyboard_mode设置了该选项。dock

触摸事件在我的 Kivy 应用程序中正常工作,我可以选择执行其指定操作的按钮;但是,触摸事件也将传递到桌面。我通过在我的 Kivy 应用程序中盲目双击然后返回桌面以找到大量打开的应用程序(通过我桌面上的快捷方式)来意识到这一点。Raspberry Pi 社区的成员也遇到了这个问题,但无济于事:https ://www.raspberrypi.org/forums/viewtopic.php?f=32&t=132054 ://www.raspberrypi.org/forums/viewtopic.php?f=32&t=132054 。

这是我的简单main.kv文件供参考:

还有我的main.python文件:

以及我用于 Kivy的config.ini文件中的相关片段:

我尝试使用配置文件中的值,最值得注意的是window_state,fullscreenkeyboard_mode选项,但没有成功。Kivy 配置信息可以在这里找到。谷歌上的各种搜索,在这里什么都没有出现,任何帮助将不胜感激。

0 投票
1 回答
785 浏览

python - Kivy 应用程序生命周期(小部件在每次重绘时复制自身)

我一直将 Kivy 视为一种动态绘制小部件的方式,这些小部件由托管在同一应用程序中的 Web API 驱动。我对这个话题还是很陌生,我遇到了 Kivy 框架生命周期的问题。总之,我想要实现的是使用使用 Flask 设置的 API 调用发送 kv 字符串。收到新的 kv 字符串后,我尝试卸载旧视图并加载新视图。这适用于任何琐碎的事情,如按钮和简单的布局,但我有一个倒数计时器小部件,它在每次调用时都会复制其标签,并且永远不会正确清除视图。这几乎就像每次加载 kv 字符串时都会复制小部件对象。在尝试加载新视图之前,我显然没有正确清除视图,但我不知道我哪里出错了。

我将首先发布 python 应用程序的完整代码:

作为 API 调用传递的示例 kv 动态字符串是:

申请流程总结:

启动时 MainApp 在不同的线程中创建一个 AppShell 对象。你不必担心这么多。本质上,AppShell 是定义所有 Flask 调用的地方,如果我只是想更改为已在本地定义的布局或布局字符串,我可以使用 layout_name 将 http put 调用推送到“on_to_gui_layout_change”方法中传入的动态 kv 字符串(参见上面的 kv 示例)。

在上面发送新的 KV 字符串后,应用程序将调用“on_to_gui_layout_change”,最终将调用“change_kv”。“change_kv”将遍历小部件并检查它们是否定义了销毁方法(这样我们就可以阻止任何计时事件继续进行)。之后它调用“clear_widgets()”,如果我们传入了一个布局,它将尝试使用 load_string 加载新视图。然后使用“add_widget”将视图添加到根 BoxLayout。

这适用于第一次通话。如果我在第二次调用时调试 CountdownTimer 有 2 个 TimerTicks 对象。随后的调用每次都会增加 TimerTicks 的数量,直到应用程序崩溃。奇怪的是,如果我在“self.parent.clear_widgets()”之后查看 TimerTicks 对象的销毁方法,它的父级 CountdownTimer 总是没有子级,这表明此时小部件已被清除,但每当“self.view = Builder.load_string(layout)" 被奇怪地称为它最终会复制 TimerTicks。

我意识到我可能没有正确地放弃旧观点,但我不完全理解生命周期以及这样做的适当方式是什么。任何帮助将不胜感激!

PS:如果每次通话都稍微移动计时器的位置,那就更明显了。然后您实际上可以看到重复项堆叠在一起。

例如:

0 投票
0 回答
771 浏览

python - Kivy:如何识别 RST 文档上的文本行

我正在尝试在 Kivy 中构建自己的富文本编辑器,因为它尚不存在。我现在的方法是将标记的文本存储在文本输入框中,并将呈现的文本显示在 RST 文档中。我有一个绑定,只要文本更改,RST 文档就会更新。链接到图片:顶部显示带有纯文本的文本输入。底部显示渲染文本

现在,我在将 RST 文档上的点击转换为文本编辑器上相应的光标位置时遇到问题。我的 x 轴识别工作正常,但 y 轴没有。对于我为示例 RST 文档单击的任何行,我的光标始终位于最后一行。代码如下所示

我正在使用该to_window()函数来获取点击位置,因为它最接近预期位置。我使用常数5.4来细化 x 轴位置。但是newCoord[1] 总是返回textinput. 部分问题是坐标系从左下角开始。单击前几行时,我的 y 值总是非常大,这就是我认为发生这种行为的原因,但是如果我使用to_local而不是to_window,即使 y 坐标值在文本旁边从零开始,返回的线值仍然是最大值。我该如何解决?

如果您对我如何制作富文本编辑器有任何建议(即,使用不同的技术关联光标位置),我很想听听!现在,如果没有标记,我可以识别正确的 x 轴位置。如果有,我可以为每个存在的标记符号增加光标位置,但对于更复杂的标记(如项目符号),这个技巧可能效果不佳。

编辑 我意识到,由于文本输入存储在顶部,它的 y 坐标远大于 RST 文档的 y 坐标。如果我将 RST 文档与 TextInput 相邻放置,则 y 坐标标识可以完美工作,但 x 坐标则不行。理想情况下,我可以隐藏 TextInput 并在其上放置 RST 文档,但我不知道该怎么做。我能想到的唯一方法是不使用add_widget(TextInput)开始,但随后两个坐标都没有匹配(无论我是否使用to_window,to_widget等)。

0 投票
1 回答
219 浏览

python - 使用模板屏蔽 kv 中的图像

一直在查看文档,但无法找到如何正确屏蔽 kv 中的图像。这是我的 kv 代码:

0 投票
1 回答
182 浏览

python - Scrollview 中的框布局

我想请你帮忙。

链接下的可滚动结构是我想要生成的。

由于 Scrollview 只接受一个元素,因此我使用了 GridLayout。不知何故,我不能在 GridLayout 中放置任何 Boxlayout。

你可以帮帮我吗?我做错了吗?我应该使用其他布局吗?如果是,是哪一个?

谢谢你。

这是我的 .kv 文件的输出:http: //imgur.com/etilRPg

这是结果,如果我将 cols:1 更改为 cols:2 :http: //imgur.com/ihWla4Y

这是我在 .kv 文件中尝试的代码: