
- 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 - 花園
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具函式
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 元件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 停用按鈕
Kivy API 提供了不同型別的按鈕元件。Button、ToggleButton、CheckBox 的物件都是具有不同特徵的按鈕。它們都具有一個共同的屬性:它們可以在點選事件中接受並傳播“觸控”事件。所有按鈕物件都可以觸發按鈕事件,因為這些類繼承了 ButtonBehavior 介面。
可以透過將“disabled”屬性設定為 True 來使按鈕對按鈕事件無響應。(disabled 屬性的預設值為 False。disabled 屬性繼承自 Widget 類。)
from kivy.uix.button import Button b1 = Button(text="OK", disabled=True)
為了配置停用按鈕與正常或啟用按鈕的外觀差異,可以使用以下屬性:
background_disabled_down - 按鈕的背景圖片是一個 StringProperty,一個包含圖片檔案路徑的字串,用於按鈕被停用且按下時的預設圖形表示。
background_disabled_normal - 按鈕的背景圖片也是一個圖片路徑,用於按鈕被停用且未按下時的預設圖形表示。
disabled_color - 此屬性繼承自 Label 類。它定義了按鈕文字或標題在停用時的顏色。它是一個 ColorProperty,預設為 [1,1,1,3]。
disabled_outline_color - 此屬性定義了元件停用時文字輪廓的顏色,格式為 (r, g, b)。它繼承自 Label 類。此功能需要 SDL2 文字提供程式。disabled_outline_color 是一個 ColorProperty,預設為 [0, 0, 0]。
示例
以下程式碼在垂直 BoxLayout 中排列了一個 ToggleButton 和一個普通按鈕。如果切換按鈕的狀態為按下或正常,則它會將另一個按鈕的 disabled 屬性更改為 True 或 False。
from kivy.app import App from kivy.uix.button import Button from kivy.uix.togglebutton import ToggleButton from kivy.core.window import Window from kivy.uix.boxlayout import BoxLayout Window.size = (720, 350) class HelloApp(App): def on_button_press(self, instance, value): if value == 'down': self.btn2.disabled = True self.btn2.text = 'Disabled' instance.text = 'Enable Btn 2' if value == 'normal': self.btn2.disabled = False self.btn2.text = 'Enabled' instance.text = 'Disable Btn 2' def build(self): flo = BoxLayout(orientation='vertical') btn1 = ToggleButton( text='Disable Btn 2', font_size=40, size_hint=(1, .25), pos_hint={'center_x': .5, 'center_y': .8} ) btn1.bind(state=self.on_button_press) self.btn2 = Button( text='Enabled', color=[0, 0, 1, 1], disabled_color=[1, 0, 0, 1], font_size=40, size_hint=(1, .25), pos_hint={'center_x': .5, 'center_y': .2} ) flo.add_widget(btn1) flo.add_widget(self.btn2) return flo if __name__ == '__main__': HelloApp().run()
輸出
程式執行時,它將顯示底部的按鈕(即 btn2)處於啟用狀態,其標題使用 Color 屬性指定的顏色。

當頂部的按鈕 (btn1) 被按下時,下面的按鈕將被停用,並更改由“disabled_color”屬性指定的顏色。