2023年8月31日 星期四

Kivy UIX篇 widget篇 Switch類 event篇 講解

若尚未看過Kivy UIX篇 widget篇 Switch類 attribute篇 講解,建議看完之後對Switch有一定了解在看這篇喔。

根據官網Switch類繼承自 kivy.uix.widget.Widget,因此Switch的event皆來自於此,詳細的可以參考Kivy UIX篇 widget篇 widget類  event篇 講解,基本上是通用的。

在官網中介紹Switch的頁面中雖然有提到一些event,但這些event已經被定義為我們的習慣(例如當按下並放開後,Switch的active會被改變),我認為不應該去改變它,所以這邊就意思意思呈現一個範例。

這邊主要呈現Progress Bar如何被其他widget影響,我想這也是Switch的主要目的。

首先在main.py中寫上起手式:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout


#先讓MyLayout繼承FloatLayout
class MyLayout(GridLayout):
    pass


class Myapp(App):

    def build(self):
        return MyLayout()


if __name__ == '__main__':
    Myapp().run()

在my.kv中寫上此段程式碼:

<MyLayout>:

    a1: b1

    rows: 2

    Switch:
        id: b1

    Label:
        text: 'open' if b1.active else 'close'

執行結果如下:


沒有留言:

張貼留言

精選文章

Kivy UIX篇 widget篇 TabbedPanel類 event篇 講解