Skip to content

P34-配置相关QSettings

python
# -*- coding: utf-8 -*-


import sys
from PyQt6.QtCore import Qt, QSettings
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton, QLabel, QWidget

class MySettingsApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyQt6配置类使用示例")
        self.setGeometry(100, 100, 400, 200)
        # 初始化字典属性
        self.my_dict = {"键1": "值1", "键2": "值2"}
        # 从文件加载字典到属性中
        self.load_settings()
        # 创建界面
        central_widget = QWidget(self)
        central_layout = QVBoxLayout(central_widget)
        label = QLabel(f"当前键值对: {self.my_dict}", self)
        central_layout.addWidget(label)
        button = QPushButton("改变键值对", self)
        button.clicked.connect(self.change_dictionary)
        central_layout.addWidget(button)
        self.setCentralWidget(central_widget)

    def load_settings(self):
        # 从文件加载字典数据
        settings = QSettings("config.ini", QSettings.Format.IniFormat)
        settings.beginGroup("mapping")
        for key in settings.allKeys():
            self.my_dict[key] = settings.value(key)
        settings.endGroup()

    def save_settings(self):
        # 保存字典数据到文件
        settings = QSettings("config.ini", QSettings.Format.IniFormat)
        settings.beginGroup("mapping")
        for key, value in self.my_dict.items():
            settings.setValue(key, value)
        settings.endGroup()

    def change_dictionary(self):
        # 模拟属性改变
        self.my_dict["key1"] = "哈哈哈"
        self.my_dict["key3"] = "嘿嘿嘿"
        # 保存更新后的字典到文件
        self.save_settings()
        # 更新界面上的标签
        self.centralWidget().layout().itemAt(0).widget().setText(f"当前键值对:{self.my_dict}")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MySettingsApp()
    window.show()
    sys.exit(app.exec())

本站收录内容源自互联网,不对其网站内容或交易负责。 | 如有内容侵犯权益,请联系站长删除相关内容!