
- 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.uix.settings”模組包含一個非常有用的功能,允許您處理 Kivy 安裝環境的設定引數。您可以在應用程式視窗上開啟設定面板並修改任何配置標記。
安裝 Kivy 軟體時,它會建立一個配置檔案,其中包含帶有其預設值的各種引數標記。該檔名為“config.ini”,儲存在由 KIVY_HOME 環境變數標識的目錄中。
在Windows機器上 - 該檔案儲存在 C:\Users\user\.kivy\config.ini。
在Linux上 - /home/user/.kivy/config.ini。
在macOS上 - /Users/user/.kivy/config.ini。
在Android上 - /data/data/org.kivy.launcher/files/.kivy/config.ini。
在iOS上 - <HOME_DIRECTORY>/Documents/.kivy/config.ini。
要開啟設定面板,請呼叫 App 類的 open_settings() 方法,通常是在 GUI 上對 on_press 事件(或任何其他事件)做出響應時呼叫。
def onpress(self, instance): app.open_settings()
我們從一個簡單的 Kivy 應用程式開始,該應用程式在視窗上安裝了一個按鈕。當按下按鈕時,它會呼叫 onpress() 方法以顯示 Kivy 設定面板。
class HelloApp(App): def onpress(self, instance): app.open_settings() def build(self): b1=Button( text='Click Here', font_size=50, on_press=self.onpress ) return b1 app = HelloApp() app.run()
應用程式執行後,單擊按鈕進入設定面板。

此處顯示的設定與您在 config.ini 檔案中看到的設定相同。嘗試更改任何配置標記的值,您將看到對配置檔案所做的更改。
有幾種可用的設定面板佈局。
設定 - 顯示設定,左側有一個側邊欄用於在 json 面板之間切換。
SettingsWithSidebar - Settings 的一個簡單子類。
SettingsWithSpinner - 顯示設定,頂部有一個微調器,可用於在 json 面板之間切換。這是預設設定。
SettingsWithTabbedPanel - 將 json 面板顯示為 TabbedPanel 中的單個選項卡。
SettingsWithNoMenu - 顯示單個 json 面板,無法切換到其他面板,也沒有關閉按鈕。
要使用 SeetingsWithSidebar 佈局,請從 kivy.uix.settings 模組匯入它,並將其分配為 App 類 settings_cls 引數的值。
from kivy.uix.settings import SettingsWithSidebar class HelloApp(App): def onpress(self, instance): app.open_settings() def build(self): self.settings_cls = SettingsWithSidebar b1=Button(text='Click Here', font_size=50, on_press=self.onpress) return b1
視窗現在提供了一個側邊欄來在設定面板之間切換。

建立新面板
現在,您只有一個名為 Kivy 的面板,它顯示 Kivy 配置的預設設定。您可以新增一個新面板來定義應用程式的設定。您需要兩件事 -
一個帶有預設值的 ConfigParser 例項。
一個 JSON 物件。
您必須建立和處理 ConfigParser 物件,以告知 kivy 的 configparser 在配置檔案中儲存哪些設定。SettingsPanel 將從中讀取值。這些設定的預設值在 JSON 物件中為所有部分/鍵指定了 setdefaults。
讓我們新增 build_config 方法,該方法為按鈕的文字和字型大小屬性提供預設值。
def build_config(self, config): config.setdefaults('My Button', {'text': 'Hello Kivy, 'font_size': 20})
build_settings() 方法根據程式碼中的 JSON 物件在配置中構建一個新面板。
此示例中使用的 JSON 物件為 -
json = ''' [ { "type": "string", "title": "Button text", "desc": "text on the button", "section": "My Button", "key": "text" }, { "type": "numeric", "title": "Button font size", "desc": "font size", "section": "My Button", "key": "font_size" } ]
要根據此 JSON 物件的定義新增新面板,請定義 build_settings() 方法 -
def build_settings(self, settings): settings.add_json_panel('My Button', self.config, data=json)
就是這樣。開啟設定後,您應該會看到添加了一個新的“我的按鈕”面板。
示例
下面給出完整程式碼 -
from kivy.app import App from kivy.uix.button import Button from kivy.core.window import Window from kivy.uix.settings import SettingsWithSidebar Window.size = (720,350) json = ''' [ { "type": "string", "title": "Button text", "desc": "text on the button", "section": "My Button", "key": "text" }, { "type": "numeric", "title": "Button font size", "desc": "font size", "section": "My Button", "key": "font_size" } ] ''' class MyApp(App): def onpress(self, instance): app.open_settings() def build(self): self.settings_cls = SettingsWithSidebar self.btn = Button(on_press=self.onpress) self.btn.text = self.config.get('My Button', 'text') self.btn.font_size = float(self.config.get('My Button', 'font_size')) return self.btn def build_config(self, config): config.setdefaults( 'My Button', {'text': 'Hello Python', 'font_size': 20} ) def build_settings(self, settings): settings.add_json_panel('My Button', self.config, data=json) def on_config_change(self, config, section, key, value): if section == "My Button": if key == "text": self.btn.text = value elif key == 'font_size': self.btn.font_size = float(value) app=MyApp() app.run()
輸出
開啟設定面板後,您現在將看到“我的按鈕”面板,其中有兩個設定。根據需要修改值。最後,關閉設定對話方塊並返回檢視更改。
