python - pyQt5中 QSettings 保存页面设置 -- 保存配置文件

参考:https://blog.csdn.net/qq_38463737/article/details/107109046

一、介绍

QSettings可以记住用户操作UI界面设置的参数,下次打开软件的时候,会直接加载用户上一次设置的参数。

函数参数
QSettings(path, format): 加载配置文件,初始化QSettingspath:配置文件路径
format:QSettings:IniFormat读写Ini文件
QSettings:NativeFormat读写注册表
QSettings::InvalidFormat无效
QSettings.value(path) 获取配置参数数值path:配置参数路径
settings.setValue(path", value) 设置配置参数数值path:配置参数路径、value:参数值

二、用法

2.1 传递给QSettings 两个参数

self.app_data = QSettings('Mysoft', 'test')

2.2 通过创建 ini 文件来存储数据

self.settings = QSettings("config.ini", QSettings.IniFormat)
self.Settings.setIniCodec('UTF-8')  # 设置ini文件编码为 UTF-8

‘config.ini’是文件名,可以自定义

三、 代码

# 初始化保存设置
self.settings = QSettings("config.ini", QSettings.IniFormat)
# self.settings.setIniCodec('UTF-8')  # 设置ini文件编码为 UTF-8
# 检查是否有数据进行初始化
if self.settings.value('SETUP/PORT_VALUE'):
    self.init_info()  # 如果存在数据就进行初始化
else:
    # 没有数据就认为是第一次打开软件,进行第一次QSettings 数据存储
    self.save_info()



def save_info(self):
    PORT_VALUE = self.Settings_UI.lineEdit_4.text()  # 获取LineEdit数据
 
    self.settings.setValue("SETUP/PORT_VALUE", PORT_VALUE)  # 作为是否初始化的条件

    QMessageBox.information(self, "提示", "保存成功")

def init_info(self):  # 初始化
     PORT_VALUE = self.settings.value("SETUP/PORT_VALUE")
     print("初始化", PORT_VALUE)

     # 初始化文本框的内容
     self.Settings_UI.lineEdit_4.setText(PORT_VALUE)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以利用QSettings保存QTableWidget的数据。需要注意的是,QSettings只能保存一些基本数据类型,如字符串、整数、浮点数等。因此,需要将QTableWidget的数据转换为基本数据类型,然后再保存。 以下是一个保存和恢复QTableWidget数据的示例代码: ```python from PyQt5.QtCore import QSettings # 保存QTableWidget数据 def save_table_data(table_widget, settings): settings.beginWriteArray("table") for row in range(table_widget.rowCount()): settings.setArrayIndex(row) for col in range(table_widget.columnCount()): item = table_widget.item(row, col) if item is not None: settings.setValue("col_{}".format(col), item.text()) settings.endArray() # 恢复QTableWidget数据 def restore_table_data(table_widget, settings): size = settings.beginReadArray("table") for row in range(size): settings.setArrayIndex(row) table_widget.insertRow(row) for col in range(table_widget.columnCount()): value = settings.value("col_{}".format(col)) if value is not None: item = QTableWidgetItem(value) table_widget.setItem(row, col, item) settings.endArray() # 创建QTableWidget table_widget = QTableWidget() table_widget.setColumnCount(3) table_widget.setRowCount(4) # 保存数据 settings = QSettings("myapp.ini", QSettings.IniFormat) save_table_data(table_widget, settings) # 恢复数据 restore_table_data(table_widget, settings) ``` 在上面的示例代码,我们利用QSettings的beginWriteArray和beginReadArray方法来保存和恢复QTableWidget的数据。在保存数据时,我们可以通过循环遍历QTableWidget的每一行和每一列,并将每个单元格的值保存为字符串。在恢复数据时,我们可以根据保存的行数和列数来创建QTableWidget,并将保存的字符串转换为QTableWidgetItem,然后插入到QTableWidget

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值