Kivy - Switch 小部件
Kivy 框架中的 Switch 小部件类似于我们在家中用来打开或关闭灯泡或风扇的电气开关。可以通过将其 active 属性滑动到 True 或 False 来切换应用程序窗口上的开关。
Switch 类在"kivy.uix.switch: module.
from kivy.uix.switch import Switch switch = Switch(**kwargs)
当放置在应用程序窗口上时,Switch 对象显示为 −
Switch 类定义一个名为 active 的布尔属性,指示开关是开还是关。通常,此属性附加到回调函数,以便在其值从 True 变为 False 或反之亦然时调用所需的操作。
def callback(instance, value): if value: print('the switch is ON') else: print ('The switch is OFF') switch = Switch() switch.bind(active=callback)
示例
我们将在以下代码中使用 Switch 小部件来开始或停止播放音频。应用程序设计包含一个标签和一个放置在水平框布局中的开关。
Switch 的 active 属性绑定到switched() 方法。当为 ON 时,将加载 Sound 对象并调用其 play() 方法。另一方面,当切换为 OFF 时,将调用 stop() 方法。
from kivy.app import App from kivy.uix.label import Label from kivy.uix.boxlayout import BoxLayout from kivy.core.audio import SoundLoader from kivy.uix.switch import Switch from kivy.core.window import Window Window.size = (720, 250) class switchdemoapp(App): def switched(self, instance, value): if value == True: self.sound = SoundLoader.load('sample.mp3') self.l1.text = 'Playing. . .' self.sound.play() else: self.sound.stop() self.l1.text = 'Switch ON to Play' def build(self): box = BoxLayout(orientation='horizontal') self.l1 = Label( text = 'Switch ON to Play', font_size = 32, color = [.8, .6, .4, 1] ) box.add_widget(self.l1) switch = Switch() switch.bind(active = self.switched) box.add_widget(switch) return box switchdemoapp().run()
输出
程序以标签开始,要求用户将开关滑动至 ON。标签标题更改为"正在播放"消息。将开关滑动至 OFF 可停止播放音乐。