- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用程式
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 小部件
- Kivy - 小部件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 輪播
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 相機
- Kivy - 樹檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 影片播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控漣漪
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 頁面佈局
- Kivy - 回收佈局
- Kivy - 佈局巢狀佈局
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪圖
- Kivy - 打包
- Kivy - Garden
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用程式和專案
- Kivy - 繪圖應用程式
- Kivy - 計算器應用程式
- Kivy - 計時器應用程式
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 小部件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 行為
在 Kivy 中,“kivy.uix.behaviors” 模組定義了行為混合器,也稱為“可重用類”,它們為小部件提供了額外的功能。它們封裝了常見的功能,可以與多個小部件混合使用以擴充套件其行為。
行為有助於保持程式碼模組化、可重用和可維護。它們允許您為標準 Kivy 小部件定義自己的實現,這些實現可以作為直接替換。
行為混合器的一個應用是使用影像作為按鈕。我們可以定義一個擴充套件 ButtonBehavior 的自定義類,使其響應“on_press”或“on_touch”等事件,以便影像本身可以像按鈕一樣工作。本章稍後我們將檢視將影像轉換為按鈕的示例。
“kivy.uix.behaviors” 模組定義了多個混合器。下面解釋了一些最常用的類:
ButtonBehavior
此行為為小部件提供了類似按鈕的功能。它添加了諸如按下/釋放視覺反饋、自動觸發“on_press”和“on_release”事件以及處理觸控事件等功能。
它經常與 Button、ToggleButton 或需要類似按鈕行為的自定義小部件一起使用。
DragBehavior
此行為類允許透過觸控輸入拖動和移動小部件。它處理諸如 on_touch_down、on_touch_move 和 on_touch_up 等觸控事件以實現拖動功能。
它可用於在您的應用程式中建立可拖動的小部件。
FocusBehavior
此行為提供了支援在小部件之間管理焦點的功能。它允許小部件接收鍵盤輸入並處理與焦點相關的事件。
它可用於實現鍵盤導航並在應用程式中管理焦點遍歷。
SelectableBehavior
此行為為小部件添加了選擇功能。它允許使用者從一組可選擇的小部件中選擇一個或多個專案。它處理選擇狀態、視覺反饋以及觸發與選擇相關的事件。
它經常與 ListView、RecycleView 或需要選擇功能的自定義小部件一起使用。
ButtonBehavior 示例
我們現在將開發一個 Kivy 程式來實現 ButtonBehavior。我們使用 Kivy 的 Image 物件在 Kivy 視窗上顯示影像。但是,要向其新增類似按鈕的行為,我們首先定義一個名為 imgbtn 的自定義類,該類擴充套件 Image 和 ButtonBehavior 類。
Image 類的 source 屬性被賦值為一個字串,該字串是影像檔案的路徑。然後我們覆蓋 on_press() 方法,如下所示:
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
class imgbtn(ButtonBehavior, Image):
def __init__(self, **kwargs):
super(imgbtn, self).__init__(**kwargs)
self.source = 'Logo.jpg'
def on_press(self):
print("Button pressed")
之後,定義 **imgbtn** 類。讓 App 類的 build() 方法返回其物件。
這是 **可執行程式碼**。您可以儲存並執行它:
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
from kivy.config import Config
# Configuration
Config.set('graphics', 'width', '720')
Config.set('graphics', 'height', '400')
Config.set('graphics', 'resizable', '1')
class imgbtn(ButtonBehavior, Image):
def __init__(self, **kwargs):
super(imgbtn, self).__init__(**kwargs)
self.source = 'Logo.jpg'
def on_press(self):
print("Button pressed")
class ImageApp(App):
def build(self):
return imgbtn()
if __name__ == '__main__':
ImageApp().run()
輸出
執行上述程式。它將在其中心顯示帶有影像的 Kivy 視窗:
請注意,影像本身充當按鈕。要測試,請單擊影像,它將在控制檯上列印以下訊息:
Button pressed