Kivy - 開關



Kivy框架中的Switch元件類似於我們在家裡用來開關燈或風扇的電開關。應用程式視窗上的開關可以透過將其active屬性切換為True或False來翻轉。

Switch類在“kivy.uix.switch”模組中定義。

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

放置在應用程式視窗上時,Switch物件顯示如下:

Kivy 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()方法。開啟時,載入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以停止播放音樂。

Kivy Switch On Off
廣告
© . All rights reserved.