PySimpleGUI - Settings 设置

全局设置

"Global Settings" 全局设置是应用程序范围内可用的应用程序设置。 这些设置控制要应用于应用程序中所有元素的 Element 类的各种属性。

这些设置以分层方式工作。 如果为 Window 窗口赋予了不同的值,则全局设置将被覆盖。 反过来,在 Window 对象中定义的设置会为特定元素赋予不同的值。

比如全局设置字体大小为16,则所有元素的文字都会相应显示。 但是,如果在布局中定义了具有 Font 属性且大小不是 16,则特定 Text 或 Input 元素,它将相应地更改外观。

set_options 函数用于更改全局应用的设置。 如果它是适用于 Windows 的设置,则该设置不仅适用于您创建的 Windows,而且适用于弹出窗口。

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

用户设置

"User settings" 用户设置是自动写入硬盘的字典。 用户设置存储在 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-',那么读取这个值是通过写来实现的

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()

在输入框中输入数据并单击"Save"保存按钮。

PysimpleGUI 设置

将保存一个 JSON 文件。 要加载以前保存的设置,请单击"加载"按钮。