# 动态配置所需
from import ConfigParser
# 获取系统语系所需
import locale
# QColor 类型的传参所需
from PyQt6.QtGui import QColor
bg_background_color = QColor(50, 50, 50, 100)
text_color = QColor(255, 255, 255, 200)
language_type = ""
# 获取系统的默认语系
def get_system_language():
# 获取默认的区域设置
locale_info = locale.getdefaultlocale()
# 提取语言部分
res = "zh_CN"
default_language = locale_info[0]
if default_language.startswith("en_"):
res = "en_US"
else:
res = default_language
return res # 记录内容:
# 1. 字体颜色
# 2. 背景颜色
# 3. 国际化的语系
def create_config(filename):
global language_type
config = ConfigParser()
config.add_section('Settings')
backgroundColor = QColor(24, 24, 24, 200)
backgroundColorStr = "{}:{}:{}:{}".format(backgroundColor.red(), backgroundColor.green(), backgroundColor.blue(), backgroundColor.alpha())
fontColor = QColor(255, 255, 255, 250)
fontColorStr = "{}:{}:{}:{}".format(fontColor.red(), fontColor.green(), fontColor.blue(), fontColor.alpha())
language_type = get_system_language()
config.set('Settings', 'text_color', fontColorStr)
config.set('Settings', 'bg_background_color', backgroundColorStr)
config.set('Settings', 'language_type', language_type)
with open(filename, 'w') as configfile:
config.write(configfile) def read_config():
global bg_background_color, text_color, language_type
config = ConfigParser()
config.read('config.ini')
if config.has_section('Settings'):
language_type = config.get('Settings', 'language_type')
backgroundColor = config.get('Settings', 'bg_background_color')
textColor = config.get('Settings', 'text_color')
bgRed, bgGreen, bgblue, bgAlpha = backgroundColor.split(":")
bg_background_color = QColor(int(bgRed), int(bgGreen), int(bgblue), int(bgAlpha))
textRed, textGreen, textblue, textAlpha = textColor.split(":")
text_color = QColor(int(textRed), int(textGreen), int(textblue), int(textAlpha))
else:
# 没有settings的配置,需要重新创建
create_config('config.ini') # 读取某个配置
def read_config_key(key):
config = ConfigParser()
config.read('config.ini')
if config.has_section('Settings'):
values = config.get('Settings', key)
return values
else:
return "" # 修改某个配置(qcolor类型)
def set_config_key_qcolor(key, qcolor_value):
config = ConfigParser()
config.read('config.ini')
new_qcolor_value = "{}:{}:{}:{}".format(qcolor_value.red(), qcolor_value.green(), qcolor_value.blue(), qcolor_value.alpha())
config.set('Settings', key, new_qcolor_value)
with open('config.ini', 'w') as f:
config.write(f) # 修改某个配置(str类型)
def set_config_key_str(key, new_value):
config = ConfigParser()
config.read('config.ini')
config.set('Settings', key, new_value)
with open('config.ini', 'w') as f:
config.write(f) # 程序初始化时,检查是否有ini配置文件,如果没有,则新建,如果有,则读取
def main():
# 读取配置
read_config() if __name__ == "__main__":
main()

  

python configparser 创建ini文件,动态读取与修改配置文件,以及保存与读取字符串与QColor类型的配置的更多相关文章

  1. Python 用configparser读写ini文件

    一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...

  2. Python3 将configparser从ini文件中读取的内容转换成字典格式

    因为写脚本的用到了,所以研究了下怎么将configparser从ini文件中读取的内容转换成字典格式. 整理一下,希望能对大家有帮助. 从http://stackoverflow.com/questi ...

  3. C# 创建INI文件,写入并可读取。----转载

    基于C#winform设计. 首先创建一个类,我命名为IniFiles.并引入命名空间using System.Runtime.InteropServices; 接着,声明API函数 [DllImpo ...

  4. C#如何读写和创建INI文件(经典)转

    C#如何读写和创建INI文件 分类: c#程序设计2011-11-27 20:42 4935人阅读 评论(2) 收藏 举报 inic#stringbuffernullfile 在做项目过程中,有时需要 ...

  5. IDEA中怎么创建ini文件

    首先博主在这使用的是idea的2019.3.2的版本,不知道的话可以打开help菜单的about查看 第一步: 具体需要在setings安装ini插件 第二步: 在File Types中查看ini,没 ...

  6. C#如何读写和创建INI文件

    在做项目过程中,有时需要保存一些简单的配置信息,可以使用xml,也可以使用INI文件.下面是C#中读取INI的方法,相信大部分朋友都使用过这种方式.INI文件的存储方式如下, [section] ke ...

  7. pycharm新建ini文件或创建ini文件失败

    1.pycharm创建ini格式的文件,没有对应的 ini 文件类型-------需要更新 Ini 2.setting–>marketplace 搜索 Ini ,然后进行安装,重启pycharm ...

  8. python批量创建txt文件,以demo.txt内的内容为文件名

    #批量创建txt文件import sys,osa=open("demo.txt")n=0aList=[]for line in a.readlines(): aList.appen ...

  9. php上传大文件时,服务器端php.ini文件中需要额外修改的选项

    几个修改点: 1.upload_max_filesize 上传的最大文件 2.post_max_size 上传的最大文件 3.max_execution_time 修改为0表示无超时,一直等待 4.m ...

  10. 用ConfigurationManager读取和修改配置文件

    为了方便有时我们会把一些简单的配置的信息放入web.config文件里. 放到appSettings添加key   value等信息. ConfigurationManager.AppSettings ...

随机推荐

  1. Qt中全局变量的定义和使用

    全局变量的定义 现在需要将自定义的STRParameter变量定义为全局变量,就需要新建两个文件,分别命名为"global.h"和"global.cpp" 在g ...

  2. React Router 6

    路由的概念,可以想像一下路由器,当来了一个请求时,路由器做了什么事情?它会把请求的IP地址和路由表进行匹配,匹配成功后,进行转发,直到目标主机.可以看到路由有三部分组成,一个是请求,一个是路由表,一个 ...

  3. 解决方案 | Adobe Acrobat XI Pro 右键菜单“在Acrobat中合并文件”丢失的最佳修复方法

    1.问题 Adobe Acrobat XI Pro右键菜单"转换为Adobe PDF"与"在Acrobat中合并文件" 不见了. 2.解决方案 桌面左下角搜索& ...

  4. CF1956B Nene and the Card Game 题解

    Nene and the Card Game 题意 有 \(2n\) 张牌,\(1,2,3,\dots,n\) 皆有两张. 有两个人在玩游戏,每个人有 \(n\) 张卡片,当一人出了一张编号为 \(k ...

  5. 关于异步编程中的bind(this)

    异步编程中的.bind(this)方法解决了异步执行后this指针指向全局函数的问题,主要可以通过以下两个场景加以说明:(本文所用例子基于React场景:为简便起见,仅在第一个例子中展示完整HTML代 ...

  6. STM32开发环境配置记录——关于PlatformIO + VSCode + CubeMX的集成环境配置

    前言 ​ 为什么配置这样的一个环境呢?鄙人受够了Keil5那个简陋的工作环境了,实在是用不下去,调试上很容易跟CubeMX的代码产生不协调导致调试--发布代码不一致造成的一系列问题.CubeIDE虽说 ...

  7. 支付宝退款和结果查询接口简单实现(.Net 7.0)

    〇.前言 支付宝对 .Net 的支持还是比较充分的,在每个接口文档中都有关于 C# 语言的示例,这样就大大降低了对接的难度,很容易上手. 官方接口文档地址:退款-alipay.trade.refund ...

  8. pytest + 登录禅道 :自动提交bug-编辑bug-确认bug-解决bug-关闭bug

    pytest +  登录禅道 :自动提交bug-编辑bug-确认bug-解决bug-关闭bug 一.Pycharm中创建项目结构 1.新建一个工程,工程名称自己定义,如:zentao 2.在工程的根目 ...

  9. Google的TPU的运算数据类型最高为32比特,也就是说TPU不支持double数据类型,浮点数类型最高支持float32

    Google的TPU的运算数据类型最高为32比特,也就是说TPU不支持double数据类型,浮点数类型最高支持float32 地址: https://cloud.google.com/tpu/docs ...

  10. baselines算法库common/atari_wrappers.py模块分析

    common/atari_wrappers.py模块代码如下: import numpy as np import os os.environ.setdefault('PATH', '') from ...