PySimpleGUI - 設定



全域性設定

全域性設定是應用範圍內可用的應用程式設定。這些設定控制元素類的各種屬性,應用於應用程式中的所有元素。

這些設定以分層方式工作。如果為視窗指定了不同的值,則全域性設定將被覆蓋。反過來,如果為特定元素指定了不同的值,則視窗物件中定義的設定也會被覆蓋。

例如,如果全域性將字型大小設定為 16,則所有元素的文字將相應顯示。但是,如果在佈局中定義了具有大小不為 16 的字型屬性的特定文字或輸入元素,則其外觀將相應更改。

函式 `set_options` 用於更改將全域性應用的設定。如果是應用於視窗的設定,則該設定不僅應用於您建立的視窗,也應用於彈出視窗。

import PySimpleGUI as sg
sg.set_options(font=('Arial Bold', 16))

使用者設定

“使用者設定”是一個自動寫入硬碟的字典。使用者設定儲存在 Python 字典中,該字典從磁碟儲存和載入。因此,各個設定是字典中的鍵。

使用者設定函式列表:

序號 函式及描述
1 user_settings

以字典形式返回設定

2 user_settings_delete_entry

刪除設定

3 user_settings_delete_filename

刪除設定檔案

4 user_settings_file_exists

如果指定設定檔案存在,則返回 True

5 user_settings_filename

返回設定檔案的完整路徑和檔名

6 user_settings_get_entry

返回設定的值。如果找不到設定,則返回指定的預設值

7 user_settings_load

從設定檔案載入字典。

8 user_settings_save

將設定儲存到當前或新指定的檔案。

9 user_settings_set_entry

將條目設定為特定值

10 user_settings_write_new_dictionary

將指定的字典寫入設定檔案

建立使用者設定物件。

settings = sg.UserSettings()

使用字典樣式的 `[]` 語法讀取設定。如果條目的名稱是 `'-item-'`,則讀取值是透過寫入實現的

item_value = settings['-item-']

以下語句用於寫入設定。

settings['-item-'] = new_value

要刪除專案,再次使用字典樣式的語法。

del settings['-item-']

您還可以呼叫 `delete_entry` 方法來刪除條目。

settings.delete_entry('-item-')

以下簡單的程式演示了使用者設定的載入/儲存

import PySimpleGUI as sg
import json
sg.set_options(font=('Arial Bold', 16))
layout = [
   [sg.Text('Settings', justification='left')],
   [sg.Text('User name', size=(10, 1), expand_x=True),
   sg.Input(key='-USER-')],
   [sg.Text('email ID', size=(10, 1), expand_x=True),
   sg.Input(key='-ID-')],
   [sg.Text('Role', size=(10, 1), expand_x=True),
   sg.Input(key='-ROLE-')],
   [sg.Button("LOAD"), sg.Button('SAVE'), sg.Button('Exit')]
]
window = sg.Window('User Settings Demo', layout, size=(715, 200))
# Event Loop
while True:
   event, values = window.read()
   if event in (sg.WIN_CLOSED, 'Exit'):
      break
   if event == 'LOAD':
      f = open("settings.txt", 'r')
      settings = json.load(f)
      window['-USER-'].update(value=settings['-USER-'])
      window['-ID-'].update(value=settings['-ID-'])
      window['-ROLE-'].update(value=settings['-ROLE-'])
   if event == 'SAVE':
      settings = {'-USER-': values['-USER-'],
      '-ID-': values['-ID-'],
      '-ROLE-': values['-ROLE-']}
      f = open("settings.txt", 'w')
      json.dump(settings, f)
      f.close()
window.close()

在輸入框中輸入資料,然後單擊“儲存”按鈕。

PysimpleGUI Settings

將儲存一個 JSON 檔案。要載入先前儲存的設定,請單擊“載入”按鈕。

廣告