добавлен класс окна настроек

This commit is contained in:
Andrew 2024-11-11 12:11:37 +03:00
parent d158aa449c
commit eeaf15ff42
19 changed files with 87 additions and 11 deletions

View File

@ -1,4 +1,4 @@
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from numpy import sqrt from numpy import sqrt
class ConstantCalculator(AutoConfigClass): class ConstantCalculator(AutoConfigClass):

View File

@ -1,7 +1,7 @@
from OptAlgorithm.PhaseCalc import PhaseCalc from src.OptAlgorithm.PhaseCalc import PhaseCalc
from OptAlgorithm.OptTimeCalculator import OptTimeCalculator from src.OptAlgorithm.OptTimeCalculator import OptTimeCalculator
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from OptAlgorithm.ConstantCalculator import ConstantCalculator from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
from numpy import cos, sin, sqrt, cbrt, arcsin from numpy import cos, sin, sqrt, cbrt, arcsin

View File

@ -1,7 +1,7 @@
from numpy import sqrt, arcsin, arccos, cos, sin from numpy import sqrt, arcsin, arccos, cos, sin
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from OptAlgorithm.ConstantCalculator import ConstantCalculator from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
class OptTimeCalculator(AutoConfigClass): class OptTimeCalculator(AutoConfigClass):

1
src/__init__.py Normal file
View File

@ -0,0 +1 @@

Binary file not shown.

View File

@ -1 +1,2 @@
from .plot_window import PlotWindow from .plot_window import PlotWindow
from .settings_windows import settingsWindow

Binary file not shown.

View File

@ -1,8 +1,8 @@
import pyqtgraph as pg import pyqtgraph as pg
import numpy as np import numpy as np
from gui import qt_settings as qts from src.gui import qt_settings as qts
from OptAlgorithm import OptAlgorithm from src.OptAlgorithm import OptAlgorithm
class PlotWindow: class PlotWindow:

View File

@ -0,0 +1,64 @@
import pyqtgraph as pg
from pyqtgraph.Qt import QtWidgets
import pyqtgraph.parametertree.parameterTypes as pTypes
from pyqtgraph.parametertree import Parameter, ParameterTree
from src.utils.json_tools import read_json, write_json
class settingsWindow(QtWidgets.QWidget):
def __init__(self, path: str, name: str):
super(settingsWindow, self).__init__()
self.settingsPath = path
self.name = name
self.data = {}
self.params = None
self.load_settings()
self.init_ui()
def load_settings(self):
self.data = read_json(self.settingsPath)
def write_settings(self):
write_json(self.settingsPath, self.data)
def _getTreeStructure(self) -> list:
params = []
for key, value in self.data.items():
params.append({'name': str(key), 'type': type(value).__name__, 'value': value})
return params
def init_ui(self):
temp = self._getTreeStructure()
self.params = Parameter.create(name='params', type='group', children=temp)
self.params.sigTreeStateChanged.connect(self.change)
ParamsTree = ParameterTree()
ParamsTree.setParameters(self.params)
ParamsTree.setWindowTitle('Settings ,f,f')
layout = QtWidgets.QGridLayout()
layout.addWidget(ParamsTree, 0,0)
self.setLayout(layout)
self.show()
def change(self, param, changes):
print("tree changes:")
for param, change, data in changes:
path = self.params.childPath(param)
if path is not None:
childName = '.'.join(path)
else:
childName = param.name()
print(' parameter: %s'% childName)
print(' change: %s'% change)
print(' data: %s'% str(data))
print(' ----------')
if __name__ == '__main__':
app = pg.mkQApp("Parameter Tree Example")
window = settingsWindow('params\operator_params.json', 'operator')
app.exec()

View File

@ -1,4 +1,4 @@
from uml.request_generator import Request from src.uml.request_generator import Request
class UMLCreator: class UMLCreator:

View File

@ -1,2 +1,2 @@
from .json_tools import read_json from .json_tools import read_json, write_json
from .diagram_parser import DiagramParser from .diagram_parser import DiagramParser

View File

@ -9,3 +9,13 @@ def read_json(filepath: str) -> dict:
with open(filepath, 'r') as json_file: with open(filepath, 'r') as json_file:
data = json.load(json_file) data = json.load(json_file)
return data return data
def write_json(filepath: str, data: dict):
if not path.exists(filepath):
raise FileNotFoundError(f"JSON file {filepath} not found!")
try:
with open(filepath, 'w') as json_file:
json.dump(data, json_file)
except Exception as e:
raise e