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。

為了更改預設設定,您可以手動更改此檔案或使用 Config 物件。Config 物件的 read()、set() 和 write() 方法分別用於讀取設定的值、分配新值以及將更改寫入配置檔案。

from kivy.config import Config

Config.read(<file>)

Config.write() # set config

您還可以為僅在當前會話中有效的任何配置引數(稱為令牌)分配一個值,方法是設定環境變數——透過程式設計方式或從作業系統終端設定。

從 Python 設定環境變數:

import os
os.environ['KIVY_LOG_MODE'] = MIXED'

您也可以從作業系統終端設定環境變數。在 Windows 命令提示符終端:

set KIVY_LOG_MODE = MIXED'

在 Linux/macOS 上:

export KIVY_LOG_MODE = MIXED'

配置檔案 config.ini 包含一個或多個節,每個節包含稱為令牌的引數。“config.ini”檔案的典型 Kivy 安裝包含 Kivy、Graphics、widgets 等節。

kivy configuration object

要使用環境變數更改特定的配置設定,請使用以下指令格式:

KCFG_<section>_<key> = <value>

例如,要設定日誌級別:

KCFG_KIVY_LOG_LEVEL= "warning"

可以使用以下語法以程式設計方式執行相同的操作:

os.environ["KCFG_KIVY_LOG_LEVEL"] = " warning"

配置令牌

配置檔案分為幾個部分,每個部分包含令牌或引數。以下是一些按節順序排列的重要令牌:

節 - [Kivy]

  • default_font - 用於顯示任何文字的小部件的預設字型。

  • desktop - 整數,0 或 1。此選項控制功能,例如啟用或停用滾動檢視中的可拖動捲軸,停用 TextInput 中的氣泡等。

  • log_dir - 日誌目錄的路徑。

  • log_level - 字串,“trace”、“debug”、“info”、“warning”、“error”或“critical”之一。設定要使用的最小日誌級別。

節 - [postproc]

  • double_tap_distance - 雙擊允許的最大距離,在 0-1000 範圍內歸一化。

  • double_tap_time - 雙擊檢測允許的時間,以毫秒為單位。

  • triple_tap_distance - 三擊允許的最大距離,在 0-1000 範圍內歸一化。

  • triple_tap_time - 三擊檢測允許的時間,以毫秒為單位。

節 [graphics]

  • fullscreen - 0、1、“fake”或“auto”之一。

  • height - 視窗高度,如果 fullscreen 設定為 auto,則不使用。

  • left - 視窗左側位置。

  • top - 視窗頂部位置。

  • resizable - 0 或 1 之一 - 0 表示固定大小,1 表示可調整大小。

  • width - 視窗寬度,如果 fullscreen 設定為 auto,則不使用。

節 [widgets]

  • scroll_distance - ScrollView 元件使用的 scroll_distance 屬性的預設值。

  • scroll_timeout - ScrollView 元件使用的 scroll_timeout 屬性的預設值。

Config 物件的方法

add_section() - 如果缺少該節,則向配置中新增一個節。例如:

Config.add_section('newsection')

get() - 獲取給定節的選項值。例如:

Config.get('graphics', 'width')

set() - 為配置令牌賦值。例如:

Config.set('graphics', 'width', 720)

write() - 將配置寫入使用 read() 方法開啟的最後一個檔案。如果寫入成功完成,則返回 True,否則返回 False。

廣告