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