我们可以在kv lang的屏幕上使用ColorPicker并将其用于kivy文件吗?

时间:2018-07-18 05:53:19

标签: python kivy kivy-language

我有一个树莓派。我在KV中使用屏幕管理器。有4个屏幕。第一个屏幕上有3个按钮,其他屏幕上有一个颜色选择器,按下颜色选择器时需要从其中获取值。

我要使用中的值。 Kv文件,并在py文件中使用它来进一步处理色轮。对我而言唯一重要的瓦尔是colorpicker.value

1 个答案:

答案 0 :(得分:0)

用户的Kivy应用功能

  

我在kv中使用屏幕管理器。有4个屏幕。第一屏有   3个按钮和其他屏幕上都有一个颜色选择器。

解决方案-具有1个屏幕的ColorPicker和ScreenManager

是的,在Python代码/脚本中,您可以访问kv文件中定义的 ColorPicker 小部件的选定颜色。有关详细信息,请参阅小/骨骼示例和输出。

注意

在示例中,感兴趣的ColorPicker().colorself.colorinstance.color

Color Picker » color

color
     

颜色保留当前以rgba格式选择的颜色。

     

color是ListProperty,默认值为(1、1、1、1、1)。

摘要

kv文件

<MainScreen>:
    ColorPicker:
        on_color:
            root.on_color(self, self.color)

Python脚本

class MainScreen(Screen):

    def on_color(self, instance, value):
        print("\non_color:")
        print("\tvalue(rgba)={}".format(value))
        print("\tcolor(rgba)={}".format(instance.color))
        print("\tcolor(hex)={}".format(instance.hex_color))
        print("\tcolor(hsv)={}".format(instance.hsv))

示例

main.py

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen


class ScreenManagement(ScreenManager):
    pass


class MainScreen(Screen):

    def on_color(self, instance, value):
        print("\non_color:")
        print("\tvalue(rgba)={}".format(value))
        print("\tcolor(rgba)={}".format(instance.color))
        print("\tcolor(hex)={}".format(instance.hex_color))
        print("\tcolor(hsv)={}".format(instance.hsv))


class TestApp(App):
    title = "Kivy ColorPicker Demo"

    def build(self):
        return ScreenManagement()


if __name__ == "__main__":
    TestApp().run()

test.kv

#:kivy 1.11.0

<ScreenManagement>:
    MainScreen:
        name: 'main'

<MainScreen>:
    ColorPicker:
        on_color:
            root.on_color(self, self.color)

输出

Img01