Kivy 简明教程

Kivy - Switch

Kivy 框架中的 Switch 小工具类似于我们在家里用来打开或关闭灯泡或风扇的电气开关。应用程序窗口上的开关可以通过将其活动属性切换为 True 或 False 来翻转。

Switch 类定义在“kivy.uix.switch: 模块中。

from kivy.uix.switch import Switch
switch = Switch(**kwargs)

当放置在应用程序窗口上时,Switch 对象会显示如下 -

kivy switch

Switch 类定义了一个名为 active 的布尔属性,该属性指示开关是否打开/关闭。通常,此属性附加到回调函数中,以便在其值从 True 更改为 False 或从 False 更改为 True 时调用所需的操作。

def callback(instance, value):
   if value:
      print('the switch is ON')
   else:
      print ('The switch is OFF')
switch = Switch()
switch.bind(active=callback)

Example

我们将在以下代码中使用 Switch 小工具开始或停止播放音频。应用程序设计包含一个标签和一个放置在水平框布局中的开关。

Switch 的活动属性已绑定到 switched() 方法。当开启时,将加载 Sound 对象,并调用其 play() 方法。另一方面,当切换到关闭时,将调用 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()

Output

该程序从询问用户将开关滑动到开启状态的标记开始。标签标题变为“播放”消息。将开关滑动到关闭以停止播放音乐。

kivy switch on off