我正在尝试在Geany编辑器中为Kivy'.kv'文件创建自定义语法高亮显示.虽然特定的文件类型似乎与我遇到的问题无关,但我在使用语法突出显示为自定义文件类型工作时所做的任何努力都会导致完全不突出显示的文件.我相信我已经完成了这项工作,似乎没有任何工作.
我已将以下内容添加到〜/ .config/geany/filetype_extensions.conf中
Kivy=*.kv;
Run Code Online (Sandbox Code Playgroud)
我还在〜/ .config/geany/filedefs /中有一个名为'filetypes.Kivy.conf'的自定义类型定义文件.我已经尝试将此文件从/ usr/share/geany /中的几个库存类型定义文件中删除,并且该文件永远不会在Geany中应用任何语法高亮.现在,仅仅为了实验,我的'filetypes.Kivy.conf'文件看起来像这样:
# For complete documentation of this file, please see Geany's main documentation
[settings]
# default extension used when saving files
extension=kv
# single comments, like # in this file
comment_single=#
[keywords]
# all items must be in one line
primary=size canvas
secondary=pos size
[indentation]
width=4
# 0 is spaces, 1 is tabs, 2 is tab & spaces
type=0
Run Code Online (Sandbox Code Playgroud)
这非常基于库存XML定义文件,但就像我说我已经尝试了许多其他库存文件.在许多情况下,我只将'extension ='值更改为kv,仍然没有应用突出显示,即使在Geany中选择Document> Set Filetype并选择几乎任何随机文件类型(除了我的自定义条目)都会在内部进行某种突出显示我的.kv文件.甚至在使用库存定义的未修改内容时也是如此,否则在Geany中专门选择时,我的.kv文件可以正常工作!
此外,默认情况下,在Geany中的Document> Set Filetype中列出并选择了Kivy文件类型,所以我必须在这里做一些事情!
我意识到这个类似的问题已被提出,但解决方案似乎与我的情况无关,因为我已经在这个和许多其他网站上尝试了所有相关主题.我的Geany版本是1.22,我正在运行Arch …
我现在正在使用Windows,我想问一下是否有任何好工具在Windows中打包一个kivy app for android或者我必须使用Linux发行版?
而且无论如何也使用kivy for python 3.3.2(最新)?
如何在我的pwd中显示图像?
import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.image import Image
class MyApp(App):
def build(self):
return Image('b1.png')
MyApp().run()
Run Code Online (Sandbox Code Playgroud) 我想知道什么?
在这个链接中解释(很少),但不是从初学者的角度来解释.
我有2个文件
test.py
class Get_People(BoxLayout):
pass
class Get_Boys(BoxLayout):
pass
class Get_Girls(BoxLayout):
pass
class TestApp(App):
def build(self):
self.load_kv('dates_test.kv')
return Get_People()
Run Code Online (Sandbox Code Playgroud)
dates_test.kv文件
<Get_People>:
orientation: 'vertical'
Button:
name: root_btn
id: root_btn
text: "I am Root Button"
on_release: change_label_b
Label:
id: root_lbl
text: "I am Root Label"
Get_Boys:
Get_Girls:
<Get_Boys>:
Button:
id: button_b
text: "Button for boys"
on_press: change_label_root
on_release: change_label_g
Label:
id: label_b
text: "Label for boys"
<Get_Girls>:
Button:
id: button_g
text: "Button for girls" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Android的Python绑定构建Tensorflow核心 - 从Android中的Kivy应用程序中使用,但不确定如何使Python绑定工作.
为Android编译Tensorflow核心可以使用以下内容:
bazel build -c opt \
--crosstool_top=//external:android/crosstool \
--cpu=armeabi-v7a \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--verbose_failures \
//tensorflow/core:android_tensorflow_lib
Run Code Online (Sandbox Code Playgroud)
有人知道如何添加Python绑定吗?这甚至可能吗?
我已经阅读过这些文档,进行了大量的搜索,但没有找到任何关于此的内容.我看到很多其他人也有兴趣让Tensorflow在Kivy上工作(适用于Android和iOS),但到目前为止似乎没有人这样做过.人们只能说我们需要构建一个python-for-android配方,但配方的第一步是使用Python绑定为Android构建,因此上面的问题.
我正在学习Kivy,并希望将一个对象置于父对象的中心.我知道我可以用kv语言中的self关键字访问对象自己的属性,但是有没有用于访问父窗口小部件的快捷方式,比如大小和位置属性?root.size和parent.size都失败了.
我在我的Kivy应用程序上连接mysql.
import mysql.connector
con = mysql.connector.Connect(host='XXX', port=XXX, user='XXX', password='XXX', database='XXX')
cur = con.cursor()
db = cur.execute("""select SELECT SQL_NO_CACHE * from abc""")
data = cur.fetchall()
print (data)
Run Code Online (Sandbox Code Playgroud)
从另一个连接上插入或删除表abc后; 我在python上调用相同的查询; 但数据没有更新.
我添加查询"SET SESSION query_cache_type = OFF;" 在选择查询之前,但它没有用.有人说"选择NOW()......"查询不可缓存,但它不能再次运行.我该怎么办?
我在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
我只是学习Python和Kivy框架.我似乎找不到任何具体的完整示例,可以使用链接到按钮的代码优雅地退出Kivy应用程序.
我找到了像这样的Kivy代码片段
Button:
id:btnExit
text:"Exit"
on_press: app.Exit()
Run Code Online (Sandbox Code Playgroud)
但不是任何实现app.Exit()调用的匹配代码.我尝试过的所有内容都会阻止代码执行,但不会清理程序窗口.
我已经读过Android和iOS风格指南声明程序不是以编程方式退出并让操作系统处理它但我正在开发全屏无边框桌面应用程序并需要一种方法来按下按钮退出程序.
我有几个屏幕.其中一个(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) kivy ×10
python ×8
android ×1
button ×1
events ×1
geany ×1
mysql ×1
mysql-python ×1
python-3.x ×1
tensorflow ×1
widget ×1