2023年8月21日 星期一

Kivy UIX篇 widget篇 Image類 method篇 講解

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

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

Image類專用method有以下幾個:

1.reload():重新載入圖片

首先在main.py中寫下程式碼:

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


#先讓MyLayout繼承GridLayout
class MyLayout(GridLayout):
    a1 = ObjectProperty(None)

    def btn1(self):
        self.a1.reload()


class Myapp(App):
    def build(self):
        return MyLayout()


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

當呼叫btn1時,a1物件呼叫reload()方法。

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

<MyLayout>:

    a1: b1
    rows: 2

    AsyncImage: #在此處我用AsyncImage代替Image,因為如果載入沒有一點點延遲的話會看不出效果
        id: b1
        source: 'https://ppt.cc/fdQSex@.jpg' #此為目前工作目錄路徑下的圖片

    Button:
        text: 'press me'
        on_press: root.btn1()

執行結果如下:


沒有留言:

張貼留言

精選文章

Kivy UIX篇 widget篇 TabbedPanel類 event篇 講解