Kreditrechner mit PyQt5 in Python
In diesem Artikel erfahren Sie , wie Sie mit PyQt5 einen Kreditrechner erstellen können. Unten sehen Sie ein Bild, das zeigt, wie der Kreditrechner aussehen wird:
PyQt5 ist ein plattformübergreifendes GUI-Toolkit, eine Reihe von Python-Bindungen für Qt v5. Aufgrund der Tools und der Einfachheit, die diese Bibliothek bietet, kann man eine interaktive Desktop-Anwendung mit so viel Leichtigkeit entwickeln
GUI Umsetzungsschritte:
1. Erstellen Sie eine Überschrift Label , das den Rechner Namen anzeigen
2. Beschriften und Zeile bearbeitet Paar für Zins erstellen, Etikett zu zeigen , was Benutzer eingeben und Zeile bearbeiten hat Text eingeben
3. Ebenso ein Paar für Nummer erstellen von Jahr und für Betrag
4. Erstellen Sie einen Druckknopf zur Berechnung.
5. Erstellen Sie ein Etikett, um die berechnete monatliche Zahlung
anzuzeigen. 6. Erstellen Sie ein Etikett, um den berechneten Gesamtbetrag anzuzeigen
Schritte zur Implementierung des Backends :
1. Führen Sie die Zeilenbearbeitung so aus, dass nur die Nummer als Eingabe akzeptiert wird.
2. Fügen Sie dem Druckknopf eine Aktion hinzu.
3. Rufen Sie innerhalb der Drucktastenaktion den Text der Zeilenbearbeitungen ab.
4. Überprüfen Sie, ob der Zeilenbearbeitungstext leer ist oder Null, dann zurückgeben, damit die Funktion nicht weiter ausgeführt wird.
5. Konvertieren Sie den Textwert in eine Ganzzahl.
6. Berechnen Sie den monatlichen Betrag und setzen Sie diesen Wert auf das Etikett.
7. Berechnen Sie den Gesamtbetrag aus dem monatlichen Betrag und zeigen Sie diesen Wert durch das Etikett an
Unten ist die Implementierung:
from
PyQt5.QtWidgets
import
*
from
PyQt5
import
QtCore, QtGui
from
PyQt5.QtGui
import
*
from
PyQt5.QtCore
import
*
import
sys
class
Window(QMainWindow):
def
__init__(
self
):
super
().__init__()
self
.setWindowTitle(
"Python "
)
self
.w_width
=
400
self
.w_height
=
500
self
.setGeometry(
100
,
100
,
self
.w_width,
self
.w_height)
self
.UiComponents()
self
.show()
def
UiComponents(
self
):
head
=
QLabel(
"Loan Calculator"
,
self
)
head.setGeometry(
0
,
10
,
400
,
60
)
font
=
QFont(
'Times'
,
15
)
font.setBold(
True
)
font.setItalic(
True
)
font.setUnderline(
True
)
head.setFont(font)
head.setAlignment(Qt.AlignCenter)
color
=
QGraphicsColorizeEffect(
self
)
color.setColor(Qt.darkCyan)
head.setGraphicsEffect(color)
i_label
=
QLabel(
"Annual Interest"
,
self
)
i_label.setAlignment(Qt.AlignCenter)
i_label.setGeometry(
20
,
100
,
170
,
40
)
i_label.setStyleSheet(
"QLabel"
"{"
"border : 2px solid black;"
"background : rgba(70, 70, 70, 35);"
"}"
)
i_label.setFont(QFont(
'Times'
,
9
))
self
.rate
=
QLineEdit(
self
)
onlyInt
=
QIntValidator()
self
.rate.setValidator(onlyInt)
self
.rate.setGeometry(
200
,
100
,
180
,
40
)
self
.rate.setAlignment(Qt.AlignCenter)
self
.rate.setFont(QFont(
'Times'
,
9
))
n_label
=
QLabel(
"Years "
,
self
)
n_label.setAlignment(Qt.AlignCenter)
n_label.setGeometry(
20
,
150
,
170
,
40
)
n_label.setStyleSheet(
"QLabel"
"{"
"border : 2px solid black;"
"background : rgba(70, 70, 70, 35);"
"}"
)
n_label.setFont(QFont(
'Times'
,
9
))
self
.years
=
QLineEdit(
self
)
onlyInt
=
QIntValidator()
self
.years.setValidator(onlyInt)
self
.years.setGeometry(
200
,
150
,
180
,
40
)
self
.years.setAlignment(Qt.AlignCenter)
self
.years.setFont(QFont(
'Times'
,
9
))
a_label
=
QLabel(
"Amount"
,
self
)
a_label.setAlignment(Qt.AlignCenter)
a_label.setGeometry(
20
,
200
,
170
,
40
)
a_label.setStyleSheet(
"QLabel"
"{"
"border : 2px solid black;"
"background : rgba(70, 70, 70, 35);"
"}"
)
a_label.setFont(QFont(
'Times'
,
9
))
self
.amount
=
QLineEdit(
self
)
onlyInt
=
QIntValidator()
self
.amount.setValidator(onlyInt)
self
.amount.setGeometry(
200
,
200
,
180
,
40
)
self
.amount.setAlignment(Qt.AlignCenter)
self
.amount.setFont(QFont(
'Times'
,
9
))
calculate
=
QPushButton(
"Compute Payment"
,
self
)
calculate.setGeometry(
125
,
270
,
150
,
40
)
calculate.clicked.connect(
self
.calculate_action)
self
.m_payment
=
QLabel(
self
)
self
.m_payment.setAlignment(Qt.AlignCenter)
self
.m_payment.setGeometry(
50
,
340
,
300
,
60
)
self
.m_payment.setStyleSheet(
"QLabel"
"{"
"border : 3px solid black;"
"background : white;"
"}"
)
self
.m_payment.setFont(QFont(
'Arial'
,
11
))
self
.y_payment
=
QLabel(
self
)
self
.y_payment.setAlignment(Qt.AlignCenter)
self
.y_payment.setGeometry(
50
,
410
,
300
,
60
)
self
.y_payment.setStyleSheet(
"QLabel"
"{"
"border : 3px solid black;"
"background : white;"
"}"
)
self
.y_payment.setFont(QFont(
'Arial'
,
11
))
def
calculate_action(
self
):
annualInterestRate
=
self
.rate.text()
if
len
(annualInterestRate)
=
=
0
or
annualInterestRate
=
=
'0'
:
return
numberOfYears
=
self
.years.text()
if
len
(numberOfYears)
=
=
0
or
numberOfYears
=
=
'0'
:
return
loanAmount
=
self
.amount.text()
if
len
(loanAmount)
=
=
0
or
loanAmount
=
=
'0'
:
return
annualInterestRate
=
int
(annualInterestRate)
numberOfYears
=
int
(numberOfYears)
loanAmount
=
int
(loanAmount)
monthlyInterestRate
=
annualInterestRate
/
1200
monthlyPayment
=
loanAmount
*
monthlyInterestRate
/
(
1
-
1
/
(
1
+
monthlyInterestRate)
*
*
(numberOfYears
*
12
))
monthlyPayment
=
"{:.2f}"
.
format
(monthlyPayment)
self
.m_payment.setText(
"Monthly Payment : "
+
str
(monthlyPayment))
totalPayment
=
float
(monthlyPayment)
*
12
*
numberOfYears
totalPayment
=
"{:.2f}"
.
format
(totalPayment)
self
.y_payment.setText(
"Total Payment : "
+
str
(totalPayment))
App
=
QApplication(sys.argv)
window
=
Window()
sys.exit(App.
exec
())
Ausgabe :