# 动态配置所需
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. 使用Sqlcel操作数据库整理数据视频

    链接:https://pan.baidu.com/s/1G4FJbLbN0oXAu61syWxCOA 提取码:noyz

  2. CF1860

    很失败啊 A 题大力分讨,罚了 \(2\) 次 B 题大力分讨,罚了 \(1\) 次 C 题大力 dp 一发过 然后就睡觉了 感觉 CF 打少了智商掉了,被前几题拖了太久

  3. Spring注解之构建器@Builder的用法

    简述 Builder使用创建者模式又叫建造者模式.简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程. 基础使用 @Builder 注解为你的类生成相对略 ...

  4. uBrand | 更适合个人创业者,小公司的AI品牌创建平台

    在跟一些辞职创业的朋友聊品牌,这个问题大家不约而同地都会提到:"我不会设计也没有资金请专业的设计师,有没有低成本打造品牌的方法呢?" 正好这段时间赶上AI的风潮,从众多AI工具中刚 ...

  5. PHP7新特性之类型声明

    今天我在这里总结下PHP7主要的新特性. 1.类型声明 做过php开发的小伙伴们都知道,php7以前的版本变量是不需要声明类型的,函数返回值也是不需要声明类型的,总之,在我们的脑海中就没有这么回事.可 ...

  6. [oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果

    字符显示器 回忆上次内容 简体和繁体的汉字 字符数量都超级大 感谢王选和陈堃銶等前辈发明了激光照排技术 中文排版从此使用上了gb2312编码   ​   添加图片注释,不超过 140 字(可选)   ...

  7. 数组的创建-数组-C

    数组内存是连续的 数组是一个整体,它的内存是连续的:也就是说,数组元素之间是相互挨着的,彼此之间没有一点点缝隙.下图演示了int a[4];在内存中的存储情形: 「数组内存是连续的」这一点很重要,所以 ...

  8. Django model 层之事务管理总结

    Django model 层之事务管理总结 by:授客 QQ:1033553122 实践环境 Python版本:python-3.4.0.amd64 下载地址:https://www.python.o ...

  9. 【楔子】单细胞测序-最佳的分析Pipeline

    作者:starlitnightly 日期:2023.07.14 !!! note 楔子 从事单细胞分析也有一段时间了,国内大部分中文教程都是使用R语言进行分析,使用Python的还比较少,或者是直译s ...

  10. fasterWhisper和MoneyPrinterPlus无缝集成

    MoneyPrinterPlus之前使用的是各种云厂商的语音识别服务来进行语音的视频和字幕的识别工作. 但是很多小伙伴说云服务用不起. 那么没办法,MoneyPrinterPlus上线最新版本,支持f ...