from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QCheckBox, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QTextEdit, QFileDialog, QMessageBox from PyQt5 import QtCore, QtGui from PyQt5.QtGui import QIcon from rscder.utils.icons import IconInstance from rscder.utils.setting import Settings class GUICfg(QDialog): def __init__(self, parent = None, flags = QtCore.Qt.WindowFlags() ) -> None: super().__init__(parent, flags) self.setWindowTitle("界面定制") self.setWindowIcon(IconInstance(parent).LOGO) form_layout = QFormLayout(self) default_size_label = QLabel('默认格网') default_size = QLineEdit() default_size.setValidator(QtGui.QIntValidator(1, 1000)) def set_defaultsize(): Settings.General().size = (int(default_size.text()), int(default_size.text())) # form_layout.addRow default_size.textChanged.connect( set_defaultsize ) form_layout.addRow(default_size_label, default_size) self.setLayout(form_layout) auto_save_label = QLabel('自动保存') auto_save = QCheckBox() auto_save.setChecked(Settings.General().auto_save) def set_autosave(): Settings.General().auto_save = auto_save.isChecked() auto_save.stateChanged.connect(set_autosave) form_layout.addRow(auto_save_label, auto_save)