相关疑难解决方法(0)

以kivy更改按钮或标签文本颜色

我正在关注这本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.graphics import Color, Ellipse, Rectangle

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

class RootLayout(GridLayout):
    pass

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

并在.kv文件中:

#:kivy 1.7.2
#:import kivy kivy

<RootLayout>:
    rows: 1
    Label:
        text: "Why does this not work?"
#        rgba: 1,0,1,1                  # doesn't work
#        Color:                         # doesn't …
Run Code Online (Sandbox Code Playgroud)

python kivy

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

如何根据Widget Kivy属性更新动态添加的**Ellipse(不使用Builder)的颜色?

这与另一个问题非常相关.唯一的区别是我是动态添加Ellipse with self.canvas而不是使用Builder(Builder.load_stringBuilder.load_file).因此,这里的代码,做工作.当您单击椭圆时,它会移动并更改颜色:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty
from kivy.graphics import Color, Ellipse

Builder.load_string("""
<CircleWidget>:
    canvas:
        Color:
            rgba: self.r,1,1,1
        Ellipse:
            pos: self.pos
            size: self.size
""")

class CircleWidget(Widget):
    r = NumericProperty(0)
    def __init__(s, **kwargs):
        s.size= [50,50]
        s.pos = [100,50]
        super(CircleWidget, s).__init__(**kwargs)

    def on_touch_down(s, touch):
        if s.collide_point(touch.x,touch.y):    
            s.pos = [s.pos[1],s.pos[0]]     # this works
            s.r = 1.0                       # this also works

class TestApp(App): …
Run Code Online (Sandbox Code Playgroud)

kivy

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

标签 统计

kivy ×2

python ×1