本教程咪博士將帶領大家學習創建自己的窗口部件 (widget)。最終,我們完成的作品是一個簡易的畫板程序。

當用 kivy 創建應用時,我們需要仔細思考以下 3 個問題:
- 我們創建的應用需要處理什么數據?
- 如何可視化地展示這些數據?
- 用戶如何與這些數據交互?
以本教程的簡易畫板為例,我們希望用戶可以用手指在觸摸屏上畫畫,這便是用戶與數據交互的方式。為了實現這樣的交互,我們需要記錄下用戶手指的位置,這便是應用需要處理的數據。而在不同位置點之間繪制線條就是數據展示的方式。
Kivy 應用中,用戶界面 (UI) 是由許多窗口部件 (Widget) 構成的。你在屏幕上看到的任何東西,歸根結底都是由某個窗口部件繪制出來的。每個窗口部件都封裝了數據、交互方式,以及視覺呈現這三大要素(即,對應前面的那 3 個問題)。綜合運用各種窗口部件,我們便可以開發各式應用。盡管,Kivy 已經內置了許多部件,例如按鈕 (Button)、滑塊 (Slider) 等,但是許多時候,我們還是需要開發自定義窗口部件,以滿足特定的用戶需求。本教程,咪博士就教大家如何開發自定義窗口部件。
總之,在開發自定義窗口部件時,請牢記 kivy 窗口部件的三要素(數據、交互、呈現)。同時,還要合理規划窗口部件的功能,要將很大的部件拆分成較小的、可重用的部件,即遵守單一職責原則(Single Responsibility Principle)。
【原文鏈接】
http://www.ipaomi.com/2017/11/05/kivy-中文教程-實例入門-簡易畫板-simple-paint-app:0-項目簡介-成/
