问题标签 [kivy]

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 投票
1 回答
5035 浏览

kivy - TextInput中的kivy ScrollView实现

我有一个函数(如下所示),我使用弹出窗口和 TextInput 来显示一些文本,并且在大多数情况下,文本内容大于弹出窗口,因此需要滚动。如果没有 ScrollView,我需要依靠键盘箭头键进行滚动,我尝试实现 ScrollView 以便可以使用鼠标滚轮滚动。但问题是它似乎不起作用,关于为什么会这样的任何想法?

谢谢

0 投票
2 回答
926 浏览

python - 如何获得一致地绘制kivy线

我试图在按钮中间画一个简单的“X”。我已经输入了以下绘图代码:

两条对角线,即使它们使用完全相同的整数坐标,绘制的也不相同。左上角到右下角是别名绘制的,而另一个则不是。我怎样才能使它们保持一致?

在此处输入图像描述

我应该提到我正在使用 Windows 版本的 kivy 进行测试,但我还没有在任何其他平台上尝试过。

0 投票
1 回答
4688 浏览

kivy - Kivy 按钮循环绑定 on_press 以回调

所以我在 kivy 用户支持(谷歌群组)上问过这个问题,但还没有得到任何答复,所以我会在这里尝试。

我有一组基于搜索工具创建的按钮。基本上它的工作方式是用户在文本输入框中输入搜索词,并根据输入文本,我的程序在数据库中搜索匹配的结果。如果有任何匹配的结果,就会创建按钮(将其文本作为匹配结果的文本),这非常有效。但我的问题是,当在循环中创建按钮时,如何将它们各自的 on_press 分配给回调?例如在我的例子中,代码看起来像这样:

在我的 .kv 文件中,我有 textinput 小部件:

在我的 .py 文件中,我有以下内容(加上一些其他代码):

分配给回调的 on_press(如上所示)实际上不起作用。它应该完成的是,当用户按下该按钮时,textinput 小部件(self.ti1)中的文本应该更改为按钮文本(即按钮作为自动填充小部件工作)。我究竟做错了什么?请注意,以上只是部分代码。主要代码的结构应该是这样,唯一的问题在于上面的代码片段。
谢谢!

0 投票
2 回答
4790 浏览

python - 在 Kivy 画布上绘制 SVG

我是基维的新手。我需要创建一个经典的模拟时钟。

我的问题是:如何将 svg 图形绘制到 kivy 画布中?

0 投票
1 回答
882 浏览

eval - 使用 eval 设计计算器的优缺点

我正在使用 kivy 为 android 制作一个计算器,它几乎完成了(不能使用 java,因为 python 是我知道的唯一语言)。它的工作方式是,用户输入一个表达式,然后 eval 用于评估该表达式。目前,在我的应用程序中,eval 表达式可以包含数字、数学运算符(+、-、/、*)和数学模块中的大多数运算符(简而言之,它是一个科学计算器),并且可以按预期工作。将来我计划集成 matplotlib 以向应用程序添加图形功能。因此,在上下文中, eval 是一个安全的选择。鉴于我在编程方面的经验有限,我并不认为 eval 在很多情况下都是不安全的方法,就在几天前,我偶然发现了一个讨论与使用 eval 相关的安全问题的线程。

那么将评估更改为我的应用程序中的其他内容更好还是在给定情况下安全?如果对前者是,那么最好的选择是什么而不改变我的代码太多。如果它在python标准库中也会更好,这样我就不会增加应用程序的大小)

编辑:顺便说一句,eval 表达式是实时计算的(不确定这是否重要)。

0 投票
1 回答
1624 浏览

python - Kivy - 滚动视图不起作用。以及如何在侧窗格中添加聊天用户

我正在尝试编写一个聊天应用程序,其界面在可滚动的侧窗格上具有用户名。

我有两个问题:

1-此代码不滚动,请让我知道我做错了什么:

2-将(可点击/可选择)用户放在侧窗格上的最佳方式,我做得对吗?

0 投票
2 回答
8714 浏览

python - 切换 kivy 小部件

我正在使用 Kivy python 库。

我定义了两个小部件。

当程序运行时,我运行第一个小部件。

当按下该小部件按钮时,我希望它消失并替换为第二个小部件。

这是两个小部件的 .kv

我的主要 python 文件运行应用程序,并返回第一个小部件

我的第一个小部件有一个回调。这是有问题的代码所属的地方

这里的想法是拥有一个用户界面管理器。该管理器不像树那样运行 UI,而是像列表和堆栈一样运行。该列表包含我所有的 UI 表单的实例。堆栈保存所述表单的遍历,每当我们跳转到一个表单时,我们将其推送到堆栈并“渲染”或其他任何一个。

编辑:我选择了我的答案,但在我的搜索中,我还发现了 Screen 对象: http: //kivy.org/docs/api-kivy.uix.screenmanager.html 就个人而言,clear() 和 add() 命令更多功能强大,但是如果您有兴趣,屏幕会从您手中夺走很多东西。过渡效果也是。

0 投票
1 回答
3271 浏览

python - 添加和清除小部件时出现 Kivy 布局问题

在使用小部件命令 add_widget 和 clear_widgets 时,我的小部件本身看起来很好,在屏幕的左下角非常小。

我将在这里解释我的所有步骤,所以请多多包涵。

我有一个系统可以从一个小部件切换到另一个小部件。“小部件”基本上是整个表单、基本画布和布局。

据我了解,这些必须具有基本布局。所以首先我把一个根元素放进去,然后我用这个根初始化我的 UI 管理器。

我的 UI 处理小部件的切换。它在创建时将所有小部件保存在一个列表中。它还为自己提供了对用户界面的引用,用于回调目的。

ChangeWidget,这里真正的核心,清除了根小部件并添加了一个新小部件。

这可以很好地显示我的表单,并带有一个按钮。单击该按钮时,它附加了一个回调以将表单从 Form1 更改为 Form2。

对应的.kv文件

单击按钮后,将发生错误。Form1 和 Form2 几乎相同。Form2 比 form2 多一个按钮。Form1 和 Form2 的代码完全相同,只是类名不同。同样,在它自己的环境中,form2 看起来很完美。

这是该错误的屏幕截图: 添加了WidgetMessedUp

编辑:暂时,我切换到使用屏幕管理器:http: //kivy.org/docs/api-kivy.uix.screenmanager.html

0 投票
1 回答
16207 浏览

syntax-highlighting - Geany 中的自定义语法高亮显示

我正在尝试在 Geany 编辑器中为 Kivy '.kv' 文件创建自定义语法突出显示。尽管特定的文件类型似乎与我遇到的问题无关,但因为我为使语法突出显示适用于自定义文件类型所做的任何努力都会导致完全未突出显示的文件。我相信我已经在这方面做了功课,但似乎没有任何效果。

我已将以下内容添加到 ~/.config/geany/filetype_extensions.conf

我在 ~/.config/geany/filedefs/ 中还有一个名为“filetypes.Kivy.conf”的自定义类型定义文件。我尝试将此文件基于 /usr/share/geany/ 中的几个库存类型定义文件,并且该文件从未在 Geany 中应用任何语法突出显示。现在,只是为了实验,我的 'filetypes.Kivy.conf' 文件如下所示:

这非常松散地基于股票 XML 定义文件,但就像我说的那样,我已经尝试了许多其他股票文件。在许多情况下,我只将 'extension=' 值更改为 kv 并且仍然没有应用突出显示,即使在 Geany 中转到 Document>Set Filetype 并选择几乎任何随机文件类型(除了我的自定义条目)都会在其中产生某种突出显示我的 .kv 文件。甚至在使用未修改的股票定义内容时也是如此,否则当在 Geany 中特别选择时,它在我的 .kv 文件上工作正常!

此外,Kivy 文件类型在 Geany 内的 Document>Set Filetype 中默认列出和选择,所以我必须在这里做点什么!

我意识到有人问过这个类似的问题,但解决方案似乎与我的情况无关,因为我已经尝试了这个网站和许多其他网站上的所有相关主题。我的 Geany 版本是 1.22,我正在运行 Arch Linux。这让我发疯 - 有什么建议吗?

谢谢!

0 投票
0 回答
1196 浏览

python - 运行kivy pong教程时DLL加载失败

我一直在尝试学习 python 并使用 kivy 创建一个小型应用程序,以了解 kivy python 应用程序。但我什至无法让标准 kivy 安装附带的 pong 教程正常工作。当我在示例文件夹中运行文件 pong.py 时,我得到以下输出。

我相信在声明期间失败即将来临:

但我不确定为什么这不起作用以及为什么它甚至无法加载他们的预制教程。有谁知道如何解决这个问题?