Python|多个滑块小部件在 Kivy 中控制背景屏幕或 WindowColor
先决条件 - Kivy 中的滑块
Kivy 是Python中一个独立于平台的 GUI 工具。因为它可以在Android、IOS、linux和Windows等平台上运行。它基本上是用来开发Android应用程序的,但这并不意味着它不能在桌面应用程序上使用。
在本文中,我们将学习如何在 kivy 中控制背景颜色,这意味着如果我们滑动滑块,窗口的颜色会相应改变。
有许多不同的方法可以做到这一点。让我们看看一种简单的方法。
???????? Kivy Tutorial – Learn Kivy with Examples.
Basic Approach to make it is very simple:
1) import kivy
2) import kivyApp
3) import BoxLayout
4) set minimum version(optional)
5) Extend the class
6) set up .kv file :
-> Set orientation
-> Set slider color
-> Create canvas.before property
-> Create Sliders
-> Create label
7) Return layout
8) Run an instance of the class
Kivy 中的多个滑块如何控制背景颜色?
Python3
# main.py to manipulate the window
# color or screen colour in kivy
# base Class of your App inherits from the App class.
# app:always refers to the instance of your application
from kivy.app import App
# BoxLayout arranges children in a vertical or horizontal box.
# or help to put the childrens at the desired location.
from kivy.uix.boxlayout import BoxLayout
# creating the root widget used in .kv file
class MultipleSliderWidget(BoxLayout):
pass
# class in which name .kv file must be named Slider.kv.
# or creating the App class
class Multiple_Slider(App):
def build(self):
# returning the instance of SliderWidget class
return MultipleSliderWidget()
# run the app
if __name__ == '__main__':
Multiple_Slider().run()
Python3
# Multiple_Slider.kv file of the main.py file.
#.kv file to manipulate the window colour.
:
# giving the orientation of Slider
orientation: "vertical"
# initially providing this colour to window
slider_colors: 0.5, 0.5, 0.5
# executed before the canvas group.
canvas.before:
Color:
rgb: root.slider_colors
Rectangle:
pos: root.pos
size: root.size
# creating the Slider
Slider:
min: 0 # minimum value of Slider
max: 1 # maximum value of Slider
value: 0.5 # initial value of Slider
# when slider moves then to increase value
on_value: root.slider_colors[0] = self.value;
Slider:
min: 0
max: 1
value: 0.5
on_value: root.slider_colors[1] = self.value
Slider:
min: 0
max: 1
value: 0.5
on_value: root.slider_colors[2] = self.value
# Adding The label
Label:
font_size: "30sp"
# the for loop is for continuously changing
# the colour as slider value changes
text: "Color:" + ", ".join(["%.3f" %(i) for i in root.slider_colors])
color: 0, 0, 1, 1
现在上面代码的.kv文件是——
Python3
# Multiple_Slider.kv file of the main.py file.
#.kv file to manipulate the window colour.
:
# giving the orientation of Slider
orientation: "vertical"
# initially providing this colour to window
slider_colors: 0.5, 0.5, 0.5
# executed before the canvas group.
canvas.before:
Color:
rgb: root.slider_colors
Rectangle:
pos: root.pos
size: root.size
# creating the Slider
Slider:
min: 0 # minimum value of Slider
max: 1 # maximum value of Slider
value: 0.5 # initial value of Slider
# when slider moves then to increase value
on_value: root.slider_colors[0] = self.value;
Slider:
min: 0
max: 1
value: 0.5
on_value: root.slider_colors[1] = self.value
Slider:
min: 0
max: 1
value: 0.5
on_value: root.slider_colors[2] = self.value
# Adding The label
Label:
font_size: "30sp"
# the for loop is for continuously changing
# the colour as slider value changes
text: "Color:" + ", ".join(["%.3f" %(i) for i in root.slider_colors])
color: 0, 0, 1, 1
输出:
视频输出: