from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout from PyQt5.QtCore import Qt from qfluentwidgets import FluentIcon as FIF from qfluentwidgets import CommandBar, Action from .json_edit import CodeEditor import json class SettingWidget(QWidget): def __init__(self, title="设置"): super().__init__() self.base = QVBoxLayout(self) # 创建水平布局来放置工具栏 bar_layout = QHBoxLayout() bar = CommandBar() bar.addAction(Action(FIF.SAVE, "保存", triggered=self.save)) bar.addAction(Action(FIF.SYNC, "重新加载", triggered=self.reload)) bar_layout.addWidget(bar, alignment=Qt.AlignmentFlag.AlignRight) # 设置工具栏右对齐 # 将水平布局添加到垂直布局中 self.base.addLayout(bar_layout) # 加载 JSON 配置 with open("config.json", "r") as config_file: config_data = config_file.read() self.c1 = CodeEditor(config_data) # 将代码编辑器添加到垂直布局中 self.base.addWidget(self.c1) self.setLayout(self.base) # 设置布局 def save(self): # 保存配置到 JSON 文件 with open("config.json", "w") as config_file: config_file.write(self.c1.toPlainText()) def reload(self): # 重新加载 JSON 配置 with open("config.json", "r") as config_file: config_data = config_file.read() self.c1.setPlainText(config_data)