【发布时间】:2018-07-18 05:53:18
【问题描述】:
我有一个树莓派。我在 kv 中使用屏幕管理器。有4个屏幕。第一个屏幕有 3 个按钮,其他屏幕有一个颜色选择器,当按下颜色选择器时我需要从中获取值。
我想使用来自的值。 Kv 文件并在 py 文件中使用它来进一步处理色轮。对我来说唯一重要的是 colorpicker.value
【问题讨论】:
标签: python kivy kivy-language
我有一个树莓派。我在 kv 中使用屏幕管理器。有4个屏幕。第一个屏幕有 3 个按钮,其他屏幕有一个颜色选择器,当按下颜色选择器时我需要从中获取值。
我想使用来自的值。 Kv 文件并在 py 文件中使用它来进一步处理色轮。对我来说唯一重要的是 colorpicker.value
【问题讨论】:
标签: python kivy kivy-language
我在 kv 中使用屏幕管理器。有4个屏幕。第一个屏幕有 3 个按钮和其他屏幕都有一个颜色选择器。
是的,在 Python 代码/脚本中,您可以访问在 kv 文件中定义的 ColorPicker 小部件的选定颜色。详情请参考小/骨架示例和输出。
在示例中,感兴趣的值是ColorPicker().color、self.color 或instance.color。
color颜色保存当前选择的 rgba 格式的颜色。
color 是一个 ListProperty,默认为 (1, 1, 1, 1)。
<MainScreen>:
ColorPicker:
on_color:
root.on_color(self, self.color)
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))
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()
#:kivy 1.11.0
<ScreenManagement>:
MainScreen:
name: 'main'
<MainScreen>:
ColorPicker:
on_color:
root.on_color(self, self.color)
【讨论】: