In der __init__ Funktion erstelle ich ein dictionary. Anschliessend update ich die Values meines dictionarys. Das Problem dabei ist, dass die upgedateten Values nicht an meine Klasse übergeben werden.
Wenn ich in der Klasse die übergebenen Werte printe, dann sehe ich, dass es die default Werte sind, die ich bei der Erstellung angegeben habe.
Kann mir jemand diesbezüglich helfen?
Vielen Dank
Upgedatete Werte von dictionary werden nicht an Klasse übergeben
-
- User
- Beiträge: 3
- Registriert: Donnerstag 28. Januar 2021, 10:04
[class GUI(QMainWindow):
def __init__(self, app, thread):
super(GUI, self).__init__()
self.app = app
self.thread = thread
self.ui = Ui_GUI()
self.ui.setupUi(self)
self.setWindowTitle('Projekt AD Stefan da Silva')
self.setMinimumSize(QSize(800, 500))
self.centerPoint = QDesktopWidget().availableGeometry().center()
self.qtRectangle = self.frameGeometry()
self.qtRectangle.moveCenter(self.centerPoint)
self.move(self.qtRectangle.topLeft())
# Config
self.config = ConfigParser()
self.param_dict = {
'samples': 0,
'faktor': 0,
'offset': 0,
'perioden': 0,
'anteile': False
}
self.signale = SignalBase(self.param_dict['samples'],
self.param_dict['perioden'],
self.param_dict['offset'])
self.fourier = np.zeros(self.param_dict['samples'])
self.single_fourier = []
self.update_dictionary()]
[def update_dictionary(self):
self.param_dict['samples'] = int(self.ui.EnterSamples.text())
self.param_dict['faktor'] = int(self.ui.EnterFactor.text())
self.param_dict['offset'] = int(self.ui.EnterOffset.text())
self.param_dict['perioden'] = int(self.ui.EnterPeriods.text())
self.param_dict['anteile'] = bool(self.ui.ShowParts.checkState())
self.signale.samps = self.param_dict['samples']
self.signale.periods = self.param_dict['perioden']
self.signale.offset = self.param_dict['offset']
item = self.ui.SignalList.item
cnt = 0
for sinus in self.signale.sine_signals:
sinus.amp = float(item(cnt).widget.ui.EnterAmp.text())
sinus.freq = float(item(cnt).widget.ui.EnterFreq.text())
sinus.pha = float(item(cnt).widget.ui.EnterPhase.text())
cnt += 1
[class SignalBase:
def __init__(self, samples, periods, offset):
# print('init')
print('samples' + ' ' + str(samples))
self.sine_signals = [] # Signalvektor
self.samples = samples # Anzahl Samples
self.periods = periods # Anzahl Perioden
self.offset = offset # Offset
self.return_signal = np.zeros(self.samples) # Return
self.samp_points = np.arange(0, self.samples, 1) # Samplingpoints
self.time_vec = np.zeros(self.samples) # Zeitvektor
self.ground_freq = None # Grundfrequenz
self.time_period = None # Betrachtete Zeitspanne
self.dt_sp = None # Zeit zwischen zwei Samplingpoints]
def __init__(self, app, thread):
super(GUI, self).__init__()
self.app = app
self.thread = thread
self.ui = Ui_GUI()
self.ui.setupUi(self)
self.setWindowTitle('Projekt AD Stefan da Silva')
self.setMinimumSize(QSize(800, 500))
self.centerPoint = QDesktopWidget().availableGeometry().center()
self.qtRectangle = self.frameGeometry()
self.qtRectangle.moveCenter(self.centerPoint)
self.move(self.qtRectangle.topLeft())
# Config
self.config = ConfigParser()
self.param_dict = {
'samples': 0,
'faktor': 0,
'offset': 0,
'perioden': 0,
'anteile': False
}
self.signale = SignalBase(self.param_dict['samples'],
self.param_dict['perioden'],
self.param_dict['offset'])
self.fourier = np.zeros(self.param_dict['samples'])
self.single_fourier = []
self.update_dictionary()]
[def update_dictionary(self):
self.param_dict['samples'] = int(self.ui.EnterSamples.text())
self.param_dict['faktor'] = int(self.ui.EnterFactor.text())
self.param_dict['offset'] = int(self.ui.EnterOffset.text())
self.param_dict['perioden'] = int(self.ui.EnterPeriods.text())
self.param_dict['anteile'] = bool(self.ui.ShowParts.checkState())
self.signale.samps = self.param_dict['samples']
self.signale.periods = self.param_dict['perioden']
self.signale.offset = self.param_dict['offset']
item = self.ui.SignalList.item
cnt = 0
for sinus in self.signale.sine_signals:
sinus.amp = float(item(cnt).widget.ui.EnterAmp.text())
sinus.freq = float(item(cnt).widget.ui.EnterFreq.text())
sinus.pha = float(item(cnt).widget.ui.EnterPhase.text())
cnt += 1
[class SignalBase:
def __init__(self, samples, periods, offset):
# print('init')
print('samples' + ' ' + str(samples))
self.sine_signals = [] # Signalvektor
self.samples = samples # Anzahl Samples
self.periods = periods # Anzahl Perioden
self.offset = offset # Offset
self.return_signal = np.zeros(self.samples) # Return
self.samp_points = np.arange(0, self.samples, 1) # Samplingpoints
self.time_vec = np.zeros(self.samples) # Zeitvektor
self.ground_freq = None # Grundfrequenz
self.time_period = None # Betrachtete Zeitspanne
self.dt_sp = None # Zeit zwischen zwei Samplingpoints]
__deets__ hat geschrieben: Donnerstag 28. Januar 2021, 11:36 Ohne Code leider nicht. Bitte dazu auch die Code Tags benutzen.
Da fehlen die Importe und wie Du die Klassen benutzt.
Woher merkst Du, dass sich das Wörterbuch nicht "geupdated" wird?
Wenn Du meinst, dass die Attribute in SignalBase sich nicht ändern: warum sollten sie auch, woher soll denn das Programm wissen, dass die Argumente ursprünglich mal in einem Wörterbuch standen?
Woher merkst Du, dass sich das Wörterbuch nicht "geupdated" wird?
Wenn Du meinst, dass die Attribute in SignalBase sich nicht ändern: warum sollten sie auch, woher soll denn das Programm wissen, dass die Argumente ursprünglich mal in einem Wörterbuch standen?
-
- User
- Beiträge: 3
- Registriert: Donnerstag 28. Januar 2021, 10:04
Die Importe habe ich alle gemacht und ich kriege auch keine Fehlermeldungen. Ich habe bei der SignalBase Klasse einen print Befehl, der mir die Werte anzeigt.Sirius3 hat geschrieben: Donnerstag 28. Januar 2021, 13:47 Da fehlen die Importe und wie Du die Klassen benutzt.
Woher merkst Du, dass sich das Wörterbuch nicht "geupdated" wird?
Wenn Du meinst, dass die Attribute in SignalBase sich nicht ändern: warum sollten sie auch, woher soll denn das Programm wissen, dass die Argumente ursprünglich mal in einem Wörterbuch standen?
Ebenfalls übergebe ich der Klasse die Values des Dictionarys
[self.signale = SignalBase(self.param_dict['samples'], self.param_dict['perioden'], self.param_dict['offset'])]