2023年8月15日 星期二

Kivy UIX篇 widget篇 Label類 event篇 講解

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

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

在官網中介紹Label的頁面中沒有提到Label類有專用的event,所以這邊就呈現一個widget類的event來證明他們是通用的。

1.on_touch_down:當點擊Label物件的瞬間即觸發條件

首先在main.py中寫下:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout


class MyLayout(FloatLayout):

    def btn1(self):
        print('A1')


class Myapp(App):

    def build(self):
        return MyLayout()


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

在以上程式碼中,我讓MyLayout類繼承FloatLayout類,使得在my.kv中的<MyLayout>:可以繼承FloatLayout類的特性,(有關FloatLayout類的詳細教學可以參考此),並且我在MyLayout類中定義我想觸發的函數btn1()

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

<MyLayout>:

    Label:
        text: 'press me'
        on_touch_down: root.btn1()

執行結果如下:(注意Pycharm的輸出)

沒有留言:

張貼留言

精選文章

Kivy UIX篇 widget篇 TabbedPanel類 event篇 講解