Для сохранения данных, введенных в несколько полей формы в PyQt, рекомендуется использовать классы моделей данных, такие как QSettings или SQLite базы данных.
Для оптимизации процесса сохранения и загрузки данных из виджетов формы, можно использовать методы, например, в цикле проходить по всем виджетам и сохранять/загружать значения из них. Другой способ - использовать словарь, где ключом будет имя виджета, а значением - его значение. Такой подход позволит легко добавлять и управлять новыми полями в форме.
Пример:
```python
class Form(QWidget):
def __init__(self):
super().__init__()
self.widgets = {
'field1': QLineEdit(),
'field2': QComboBox(),
'field3': QRadioButton()
}
layout = QVBoxLayout()
for name, widget in self.widgets.items():
layout.addWidget(widget)
self.setLayout(layout)
def save_data(self):
data = {}
for name, widget in self.widgets.items():
if isinstance(widget, QLineEdit):
data[name] = widget.text()
elif isinstance(widget, QComboBox):
data[name] = widget.currentText()
elif isinstance(widget, QRadioButton):
data[name] = widget.isChecked()
# сохранение данных
def load_data(self):
data = {} # загрузка данных
for name, value in data.items():
widget = self.widgets[name]
if isinstance(widget, QLineEdit):
widget.setText(value)
elif isinstance(widget, QComboBox):
index = widget.findText(value)
widget.setCurrentIndex(index)
elif isinstance(widget, QRadioButton):
widget.setChecked(value)
```
Таким образом, при добавлении новых полей в форму, нужно просто добавить их в словарь `self.widgets` и соответствующие условия в методы `save_data` и `load_data`.