Python :: Aufgabe #235 :: Lösung #3

3 Lösungen Lösungen öffentlich
#235

Funktionswerte einer Parabel berechnen - Windows Forms

Anfänger - Python von paddlboot - 04.12.2019 um 16:13 Uhr
Erstelle eine Windows Form, in der Funktionswerte einer Parabel berechnet werden können.
Dafür sollen Start-, Endwert und Schrittweite über Textboxen eingelesen werden und nach dem Betätigen des Berechnen-Buttons die X- und Y-Werte in einer ListBox ausgegeben werden.
Mögliches Aussehen siehe Anhang.
#3
vote_ok
von Gisbert5020 (3120 Punkte) - 20.04.2020 um 09:02 Uhr
Quellcode ausblenden Python-Code
import sys
from PyQt5 import QtWidgets as qtw
from PyQt5 import QtGui as qtg
from PyQt5 import QtCore as qtc
from PyQt5 import uic
class Fenster(qtw.QMainWindow):
    
    def __init__(self):
        super().__init__()
        self.ui=uic.loadUi("funktionswerte.ui", self) 
        self.listWidget.addItem("Berechnete Werte")
        self.listWidget.addItem("----------------------")
        self.pushButton.pressed.connect(self.rechnen)
        self.pushButton_2.pressed.connect(self.reset)
    def rechnen(self):
        if self.startwert.text() == "" or self.endwert.text() == "":
            msg = qtw.QMessageBox.warning(self,"Eingaben","Start und Endwert müssen angegeben werden!")
            return
        if self.startwert.text() > self.endwert.text():
            msg = qtw.QMessageBox.warning(self,"Eingaben","Startwert muß kleiner sein als der Endwert")
            return
        self.listWidget.clear()
        self.listWidget.addItem("Berechnete Werte")
        self.listWidget.addItem("----------------------")
        start=int(self.startwert.text())
        ende =int(self.endwert.text())
        if self.schrittweite.text()=="": self.schrittweite.setText("1")
        schritt = int(self.schrittweite.text())
        for i in range(start,ende+schritt,schritt):
            string = "x: " + str(i) + "    y: " + str(i**2)
            self.listWidget.addItem(string)
    def reset(self):
        self.startwert.setText("")
        self.endwert.setText("")
        self.schrittweite.setText("")
        self.listWidget.clear()
        self.listWidget.addItem("Berechnete Werte")
        self.listWidget.addItem("----------------------")
if __name__ == '__main__':
    app = qtw.QApplication(sys.argv)
    fenster=Fenster()
    fenster.show()
    app.exec_()

Quellcode ausblenden XML-Code
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>571</width>
    <height>314</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Funktionserte einer Parabel berechnen</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QGroupBox" name="groupBox">
    <property name="geometry">
     <rect>
      <x>50</x>
      <y>30</y>
      <width>221</width>
      <height>201</height>
     </rect>
    </property>
    <property name="font">
     <font>
      <pointsize>12</pointsize>
     </font>
    </property>
    <property name="title">
     <string>X-Werte</string>
    </property>
    <widget class="QWidget" name="formLayoutWidget">
     <property name="geometry">
      <rect>
       <x>20</x>
       <y>50</y>
       <width>191</width>
       <height>141</height>
      </rect>
     </property>
     <layout class="QFormLayout" name="formLayout">
      <property name="verticalSpacing">
       <number>20</number>
      </property>
      <item row="0" column="0">
       <widget class="QLabel" name="label">
        <property name="font">
         <font>
          <pointsize>12</pointsize>
          <weight>50</weight>
          <bold>false</bold>
         </font>
        </property>
        <property name="text">
         <string>Startwert</string>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
       <widget class="QLineEdit" name="startwert"/>
      </item>
      <item row="1" column="0">
       <widget class="QLabel" name="label_2">
        <property name="font">
         <font>
          <pointsize>12</pointsize>
          <weight>50</weight>
          <bold>false</bold>
         </font>
        </property>
        <property name="text">
         <string>Endwert</string>
        </property>
       </widget>
      </item>
      <item row="1" column="1">
       <widget class="QLineEdit" name="endwert"/>
      </item>
      <item row="2" column="0">
       <widget class="QLabel" name="label_3">
        <property name="font">
         <font>
          <pointsize>12</pointsize>
          <weight>50</weight>
          <bold>false</bold>
         </font>
        </property>
        <property name="text">
         <string>Schrittweite</string>
        </property>
       </widget>
      </item>
      <item row="2" column="1">
       <widget class="QLineEdit" name="schrittweite">
        <property name="placeholderText">
         <string>1</string>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </widget>
   <widget class="QPushButton" name="pushButton">
    <property name="geometry">
     <rect>
      <x>70</x>
      <y>240</y>
      <width>75</width>
      <height>41</height>
     </rect>
    </property>
    <property name="text">
     <string>Berechnen</string>
    </property>
   </widget>
   <widget class="QPushButton" name="pushButton_2">
    <property name="geometry">
     <rect>
      <x>170</x>
      <y>240</y>
      <width>75</width>
      <height>41</height>
     </rect>
    </property>
    <property name="text">
     <string>Reset</string>
    </property>
   </widget>
   <widget class="QListWidget" name="listWidget">
    <property name="enabled">
     <bool>true</bool>
    </property>
    <property name="geometry">
     <rect>
      <x>360</x>
      <y>30</y>
      <width>191</width>
      <height>271</height>
     </rect>
    </property>
    <property name="font">
     <font>
      <pointsize>12</pointsize>
     </font>
    </property>
   </widget>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben