From 11beed44c78847c91b25d8b4c9d8b3c7ada8de35 Mon Sep 17 00:00:00 2001 From: hbui <hong-phuc.bui@htwsaar.de> Date: Thu, 25 Jul 2024 03:01:12 +0200 Subject: [PATCH] Auswahl der Methode is eindeutig gestaltet --- num-int/src/numint/guimain.py | 33 ++++++++++++++++++++++++++++----- 1 files changed, 28 insertions(+), 5 deletions(-) diff --git a/num-int/src/numint/guimain.py b/num-int/src/numint/guimain.py index 3f90199..076d851 100644 --- a/num-int/src/numint/guimain.py +++ b/num-int/src/numint/guimain.py @@ -35,24 +35,30 @@ layout.addWidget(self.canvas) self.ui.plotBox.setLayout(layout) self.ui.plotBtn.clicked.connect(self._update_plot) + self.ui.breakMethod.buttonClicked.connect(self._activate_break_rule) + self.ui.numberOfSectionsMethod.click() def _update_plot(self): fn_expr = self.ui.function.text() self.fn_expr = fn_expr start = self.ui.startValue.text() end = self.ui.endValue.text() - epsilon = self.ui.espilon.text() + try: f = parse_function(fn_expr) (a, b) = (parse_value(start), parse_value(end)) - if epsilon is not None and len(epsilon.strip()) > 0: - eps = parse_value(epsilon) + method_id = self.ui.breakMethod.checkedId() + if method_id == self.ui.breakMethod.id(self.ui.minEpsilonMethod): + epsilon = self.ui.espilon.text() + eps = abs(parse_value(epsilon)) + self.ui.espilon.setText(f"{eps}") print(f"plot f(x) = {fn_expr}, {a}, {b}, epsilon = {eps}") (self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_epsilon(f, a, b, eps) self._update_plot_eps() - else: + elif method_id == self.ui.breakMethod.id(self.ui.numberOfSectionsMethod): section = self.ui.section.text() - sec = parse_value(section) + sec = int(abs(parse_value(section))) + self.ui.section.setText(f"{sec}") print(f"plot f(x) = {fn_expr}, {a}, {b}, section = {sec}") (self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_section(f, a, b, sec) self._update_plot_eps() @@ -74,6 +80,23 @@ self.ui.rightSum.setText(f"{self.right}") self.ui.numOfSections.setText(f"{self.num_of_iterations}") + def _activate_break_rule(self): + method_id = self.ui.breakMethod.checkedId() + print(method_id) + if method_id == self.ui.breakMethod.id(self.ui.numberOfSectionsMethod): + print("activate num of sec") + self.ui.section.setEnabled(True) + self.ui.section.setFocus() + self.ui.espilon.setEnabled(False) + + elif method_id == self.ui.breakMethod.id(self.ui.minEpsilonMethod): + print("activate minimum epsilon method") + self.ui.section.setEnabled(False) + self.ui.espilon.setEnabled(True) + self.ui.espilon.setFocus() + + + def main(): app = QApplication(sys.argv) -- Gitblit v1.10.0-SNAPSHOT