标签: kivy

在kivy中按钮内组合图像和文本

在按钮中组合图像/图标和文本的首选方法是什么?例如,如何创建一个按钮text = 'my button',并在该文本的左侧创建一个图形图标?

kivy

10
推荐指数
1
解决办法
1万
查看次数

在Kivy中居物体

我试图在布局中居中一个圆圈.我目前正在做一些填充计算,但我也在寻找更好的方法,并想象一个预定义的布局可能是更好的选择.这是我的代码产生的......

对于方形布局:

在此输入图像描述

对于宽布局:

在此输入图像描述

所以,这是正确的行为,这很好.但有更好的方法吗?(例如,我可以想象这会变得非常圆形.)

这是我的代码:

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')

from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.graphics import Color, Ellipse, Rectangle

class MinimalApp(App):
    title = 'My App'
    def build(self):
        root = RootLayout()
        return(root)

class RootLayout(AnchorLayout):
    pass

class Circley(RelativeLayout):
    pass

if __name__ == '__main__':
    MinimalApp().run()
Run Code Online (Sandbox Code Playgroud)

和KV:

#:kivy 1.7.2
#:import kivy kivy

<RootLayout>:
    anchor_x: 'center'                              # I think this /is/ centered
    anchor_y: 'center' 
    canvas.before: …
Run Code Online (Sandbox Code Playgroud)

python layout user-interface kivy

10
推荐指数
1
解决办法
3902
查看次数

使用KV语言的Kivy Garden Graph

如何garden.graph在kv文件中使用kivy模块?我只找到了解释如何在主python脚本中使用它的文档.

我导入了kivy.garden.graphpython文件,我可以Graph在kv文件里面添加,但是我没有找到任何文档如何设置大小,图等.

Graph:
    id: graph_test
    plot: MeshLinePlot
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误MeshLinePlot is not defined,虽然我在python端导入它.

任何帮助都将受到高度赞赏,也许我们可以将此信息添加到图形的github自述文件中.

python graph kivy

10
推荐指数
2
解决办法
4061
查看次数

Kivy:刷卡(Carousel&ScreenManager)

我在ScreenManager中有两个屏幕,它们都包含ScrollView中的许多按钮.这个想法是通过单击按钮向前迈出一步(右).然后向后退(向左).所以我试图添加一个Carousel来实现第二页上的一次滑动.这是我尝试过的:

self.root = ScreenManager(id = 'screen_manager')

main_screen = Screen(name = 'main_screen')

scroller = Scroller()
button_text = ['teach', 'move', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8']
for text in button_text:
    scroller.view.add_widget(Field(name=text, direction='left', current='teach'))
main_screen.add_widget(scroller)
self.root.add_widget(main_screen)

carousel = Carousel(direction='left', id='carousel')

teach = Screen(name = 'teach')
scroller2 = Scroller()
button_text = ['vocab', 'drills']
for text in button_text:
    scroller2.view.add_widget(Field(name=text, direction='right', current='main_screen'))
carousel.add_widget(scroller2)
teach.add_widget(carousel)
self.root.add_widget(teach)
Run Code Online (Sandbox Code Playgroud)

但由于我只添加了第二个屏幕,因此无法向任一方向滑动.Carousel的load_slide()方法以幻灯片作为参数.假设通过幻灯片他们意味着旋转木马.鉴于我将有很多页面,我可能需要使用add_widget()和动态加载Carousel remove_widget().会赞赏一些指示.

到目前为止我的代码的工作示例:http://dpaste.com/33464R2

kivy

10
推荐指数
1
解决办法
5289
查看次数

如何使用按钮退出Kivy应用程序

我只是学习Python和Kivy框架.我似乎找不到任何具体的完整示例,可以使用链接到按钮的代码优雅地退出Kivy应用程序.

我找到了像这样的Kivy代码片段

Button:
    id:btnExit
    text:"Exit"
    on_press: app.Exit()
Run Code Online (Sandbox Code Playgroud)

但不是任何实现app.Exit()调用的匹配代码.我尝试过的所有内容都会阻止代码执行,但不会清理程序窗口.

我已经读过Android和iOS风格指南声明程序不是以编程方式退出并让操作系统处理它但我正在开发全屏无边框桌面应用程序并需要一种方法来按下按钮退出程序.

python kivy

10
推荐指数
2
解决办法
2万
查看次数

更新单独工作程序中的标签(流程实例)

我有几个屏幕.其中一个(DataScreen)包含8个标签,应显示当前传感器值.传感器由单独的进程读取(从MainScreen启动).过程本身就是一个例子multiprocessing.Process.

我可以参考标签 sensor_labels = self.manager.get_screen('data').l

但是,我无法弄清楚如何在子进程中更改它们.我可以从任何不是单独进程的函数中更改它们,只需执行以下操作:

for item in sensor_labels:
    item.text = 'Update'
Run Code Online (Sandbox Code Playgroud)

不幸的是,将参考传递sensor_labels给工人似乎更加困难.如果我将它们作为参数传递,则两个进程(kivy和worker)似乎共享同一个对象(id是相同的).但是,如果我改变label.text = 'New Text'Kivy没有任何变化.

为什么两个对象的id都相同,但文本没有改变?我如何与另一个进程共享一个Kivy标签对象?

这是我工作的最小例子

#! /usr/bin/env python
""" Reading sensor data
"""
from kivy.config import Config
Config.set('kivy', 'keyboard_mode', 'multi')
from kivy.app import App
from kivy.lang import Builder
from kivy.properties import StringProperty, ObjectProperty, NumericProperty
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.stacklayout import StackLayout
from multiprocessing import Process, Queue, Array
# all other modules
import time
import …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing kivy

10
推荐指数
1
解决办法
512
查看次数

Cython 未找到..请在 buildozer 中安装它错误

我试图在 Linux 中从推土机创建 apk 文件,但每次我收到此错误时都找不到 cython。虽然我尝试安装它,但我找到了整个互联网但没有得到答案。请帮助我。我是初学者
\n代码:

\n
(kali\xe3\x89\xbfkali)-[~/Desktop/KivyApp]\n\xe2\x94\x94\xe2\x94\x80$ buildozer android debug                                                               1 \xe2\xa8\xaf\n# Check configuration tokens\n# Ensure build layout\n# Check configuration tokens\n# Read available permissions from api-versions.xml\n# Preparing build\n# Check requirements for android\n# Run 'dpkg --version'\n# Cwd None\nDebian 'dpkg' package management program version 1.20.7.1 (amd64).\nThis is free software; see the GNU General Public License version 2 or\nlater for copying conditions. There is NO warranty.\n# Search for Git (git)\n#  -> found at /usr/bin/git\n# Search for Cython (cython)\n# Cython (cython) not …
Run Code Online (Sandbox Code Playgroud)

python android cython kivy buildozer

10
推荐指数
2
解决办法
2万
查看次数

错误:找不到 kivy_deps.sdl2_dev~=0.4.5 的匹配发行版

我完成了安装 Kivy 的整个过程...

\n
python -m pip install --upgrade pip wheel setuptools\npython -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew\npython -m pip install kivy.deps.gstreamer\npython -m pip install kivy.deps.angle\npython -m pip install pygame\npython -m pip install kivy\n\n
Run Code Online (Sandbox Code Playgroud)\n

但是一旦我到达最后一个 pip install kivy 我就会在控制台中收到下一条消息:

\n
    \n```\nCollecting kivy\n     Using cached Kivy-2.1.0.tar.gz (23.8 MB)\n     Installing build dependencies ... error\n     error: subprocess-exited-with-error\n\n     \xc3\x97 pip subprocess to install build dependencies did not run successfully.\n     \xe2\x94\x82 exit code: 1\n     \xe2\x95\xb0\xe2\x94\x80> [10 lines of output]\n         Collecting setuptools\n           Using …
Run Code Online (Sandbox Code Playgroud)

python kivy

10
推荐指数
1
解决办法
1万
查看次数

在kivy中旋转触摸事件上的对象

我正在制作一个像大表盘一样旋转的圆圈.目前,我在顶部有一个箭头,显示表盘朝向哪个方向.我希望它的行为有点像一个老式的旋转手机,这样当你的手指/光标向下时你可以旋转它,但它会(放慢)在你松开后慢慢地回到顶部.

这是我的对象的样子:

在此输入图像描述

这是我的代码:

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
import math

from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.graphics import Color, Ellipse, Rectangle

class MinimalApp(App):
    title = 'My App'
    def build(self):
        root = RootLayout()
        return(root)

class RootLayout(AnchorLayout):
    pass

class Circley(RelativeLayout):
    angle = 0
    def on_touch_down(self, touch):
        ud = touch.ud
        ud['group'] = g = str(touch.uid)
        return True
    def on_touch_move(self, touch):
        ud = touch.ud
#        print(touch.x, …
Run Code Online (Sandbox Code Playgroud)

python layout user-interface kivy

9
推荐指数
1
解决办法
5263
查看次数

我在运行工具链时得到"xcrun:error:SDK"iphonesimulator"无法定位"

我正在尝试将Kivy程序编译到iOS上,但是当我运行命令来构建Kivy发行版时,我不断收到此错误:

xcrun:错误:无法找到SDK"iphonesimulator"

我的电脑上有xcode.到底是怎么回事?

xcode ios kivy

9
推荐指数
2
解决办法
3295
查看次数