
PyQt5快速上手基础篇10-QSettings用法
发布日期:2021-05-15 00:02:33
浏览次数:10
分类:精选文章
本文共 1513 字,大约阅读时间需要 5 分钟。
前言
本节将介绍PyQt5中的QSettings功能,讲解如何通过QSettings实现用户设置的持久化存储。QSettings能够在不同会话间保存窗口位置、布局和其他设置信息,为程序开发提供便利。一、基础知识
QSettings是PyQt库提供的一种便于持久化存储应用程序设置的工具。在Windows系统中,设置信息通常存储在注册表中,而在Mac OS X和iOS上则保存在plist文件中。为了提供一致的API,QSettings抽象了这些不同系统之间的配置文件行为。
1.QSettings简介
QSettings允许开发者在程序运行时读取并写入配置文件,从而实现跨平台的设置存取功能。它支持从配置文件中读取和写入字符串、整数、布尔值和颜色等数据类型。
二、实例与操作
1.设计UI界面
首先使用Qt Designer创建菜单栏、工具栏和状态栏等界面元素。在编写代码之前,确保串口组合框中添加必要的项目。由于串口配置通常不多,建议直接列出常用设置。
2 QAction与UI文件转换
使用pyuic5工具将设计好的UI文件转换为Python代码。注意将动作工具界面文件action_tool.ui
重命名为settings.ui
。运行以下命令:
pyuic5 -o ui_settings.py settings.ui
将生成ui_settings.py
文件,包含与UI界面相关的各种逻辑操作。
3.编写程序主体
新建Python类myForm
继承自qw.QMainWindow
和ui_settings.Ui_MainWindow
。在初始化方法中加载用户之前保存的配置文件。设置默认参数并初始化界面。
class myForm(qw.QMainWindow, ui_settings.Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) # 加载配置文件并初始化界面参数 self.settings = qc.QSettings("config.ini", qc.QSettings.IniFormat) # 初始化串口参数 self.com = self.settings.value("SETUP/COM_VALUE") # 类似地设置其余参数
注意:所有设置参数均需从配置文件中获取,并在界面组件初始化时赋值。
4.配置文件管理
按照如下格式创建config.ini
文件:
[SETUP]COM_VALUE=COM4BAUD_VALUE=115200DATABIT_VALUE=7POLARITY_VALUE=evenSTOPBIT_VALUE=1.5FLOW_VALUE=none
保存所有配置参数到指定文件中,确保路径正确。
三、程序运行与调试
1.运行程序:使用python3 run.py
启动程序,检查界面是否正确显示。
config.ini
文件中。4.重新启动程序:验证是否能正确加载上一次保存的设置。 四、注意事项
1.串口号设置:由于串口信息通常较少,可以通过 QTableWidgetItem直接添加确认项。
2.多语言支持:如需支持多种语言,建议预先处理所有可翻译的文本信息。通过以上方法,可以轻松实现配置文件的读写和持久化存储。平时工作中遇到问题,可以通过邮件或技术论坛与同行交流。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月03日 20时45分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
AndroidStudio跳到错误位置
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2019-03-07
selenium+python之切换窗口
2019-03-07
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
idea创建工程时错误提醒的是architectCatalog=internal
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07
在Vue中使用样式——使用内联样式
2019-03-07