Voraussetzung: Tkinter Einführung

Python bietet mehrere Optionen für die Entwicklung der grafischen Benutzeroberfläche (GUI). Von allen GUI-Methoden ist tkinter die am häufigsten verwendete Methode. Es ist eine Standard-Python-Schnittstelle zum mit Python gelieferten Tk-GUI-Toolkit. Python mit tkinter gibt den schnellsten und einfachsten Weg aus, um die GUI-Anwendungen zu erstellen. Das Erstellen einer GUI mit tkinter ist eine einfache Aufgabe.

So erstellen Sie einen tkinter:

  1. Modul importieren - tkinter
  2. Erstellen Sie das Hauptfenster (Container)
  3. Fügen Sie dem Hauptfenster eine beliebige Anzahl von Widgets hinzu
  4. Wenden Sie den Ereignisauslöser auf die Widgets an.

Mal sehen, wie man einen Kreditrechner mit der Python-GUI-Bibliothek Tkiner erstellt. Der Rechner ist in der Lage, den Gesamtbetrag und die monatliche Zahlung basierend auf dem Darlehensbetrag, dem Zeitraum und dem Zinssatz zu berechnen.

Schritt 1: Erstellen Sie ein Hauptfenster.



def __init__(self): 
    
    window = Tk()  
    window.title("Loan Calculator") 
 
    
    Label(window, text = "Annual Interest Rate").grid(row = 1, 
                                       column = 1, sticky = W) 
    Label(window, text = "Number of Years").grid(row = 2, 
                                  column = 1, sticky = W) 
    Label(window, text = "Loan Amount").grid(row = 3, 
                              column = 1, sticky = W) 
    Label(window, text = "Monthly Payment").grid(row = 4, 
                                  column = 1, sticky = W) 
    Label(window, text = "Total Payment").grid(row = 5, 
                                column = 1, sticky = W) 
 
    
    self.annualInterestRateVar = StringVar()     
    Entry(window, textvariable = self.annualInterestRateVar, 
                 justify = RIGHT).grid(row = 1, column = 2) 
 
    self.numberOfYearsVar = StringVar() 
    Entry(window, textvariable = self.numberOfYearsVar, 
            justify = RIGHT).grid(row = 2, column = 2) 
 
    self.loanAmountVar = StringVar() 
    Entry(window, textvariable = self.loanAmountVar, 
         justify = RIGHT).grid(row = 3, column = 2) 
 
    self.monthlyPaymentVar = StringVar() 
    lblMonthlyPayment = Label(window, textvariable = 
                self.monthlyPaymentVar).grid(row = 4, 
                column = 2, sticky = E) 
 
    self.totalPaymentVar = StringVar() 
    lblTotalPayment = Label(window, textvariable =
                self.totalPaymentVar).grid(row = 5, 
                column = 2, sticky = E) 
      
    
    btComputePayment = Button(window, text = "Compute Payment", 
                           command = self.computePayment).grid( 
                               row = 6, column = 2, sticky = E)  
    
    window.mainloop()  

 
Schritt 2: Hinzufügen von Funktionen.

def computePayment(self): 
    
    monthlyPayment = self.getMonthlyPayment(float(self.loanAmountVar.get()), 
                    float(self.annualInterestRateVar.get()) / 1200, 
                    int(self.numberOfYearsVar.get())) 
 
    self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f')) 
    totalPayment = float(self.monthlyPaymentVar.get()) * 12 \ 
                           * int(self.numberOfYearsVar.get()) 
    self.totalPaymentVar.set(format(totalPayment, '10.2f')) 
 
def getMonthlyPayment(self, loanAmount, monthlyInterestRate, numberOfYears):  
    monthlyPayment = loanAmount * monthlyInterestRate /
                    (1- 1 / (1 + monthlyInterestRate) **
                    (numberOfYears * 12)) 
 
    return monthlyPayment; 

 
Schritt 3: Programm abschließen

from tkinter import *
class LoanCalculator: 
  
    def __init__(self): 
  
        window = Tk() 
        window.title("Loan Calculator") 
        
        Label(window, text = "Annual Interest Rate").grid(row = 1, 
                                          column = 1, sticky = W) 
        Label(window, text = "Number of Years").grid(row = 2, 
                                      column = 1, sticky = W) 
        Label(window, text = "Loan Amount").grid(row = 3, 
                                  column = 1, sticky = W) 
        Label(window, text = "Monthly Payment").grid(row = 4, 
                                      column = 1, sticky = W) 
        Label(window, text = "Total Payment").grid(row = 5, 
                                    column = 1, sticky = W) 
  
        
        self.annualInterestRateVar = StringVar()  
        Entry(window, textvariable = self.annualInterestRateVar, 
                     justify = RIGHT).grid(row = 1, column = 2) 
        self.numberOfYearsVar = StringVar() 
  
        Entry(window, textvariable = self.numberOfYearsVar, 
                 justify = RIGHT).grid(row = 2, column = 2) 
        self.loanAmountVar = StringVar() 
  
        Entry(window, textvariable = self.loanAmountVar, 
              justify = RIGHT).grid(row = 3, column = 2) 
        self.monthlyPaymentVar = StringVar() 
        lblMonthlyPayment = Label(window, textvariable = 
                           self.monthlyPaymentVar).grid(row = 4, 
                           column = 2, sticky = E) 
  
        self.totalPaymentVar = StringVar() 
        lblTotalPayment = Label(window, textvariable = 
                       self.totalPaymentVar).grid(row = 5, 
                       column = 2, sticky = E) 
          
        
        btComputePayment = Button(window, text = "Compute Payment", 
                                  command = self.computePayment).grid( 
                                  row = 6, column = 2, sticky = E)  
        window.mainloop() 
  
  
    
    def computePayment(self): 
                  
        monthlyPayment = self.getMonthlyPayment( 
        float(self.loanAmountVar.get()), 
        float(self.annualInterestRateVar.get()) / 1200, 
        int(self.numberOfYearsVar.get())) 
  
        self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f')) 
        totalPayment = float(self.monthlyPaymentVar.get()) * 12 \ 
                                * int(self.numberOfYearsVar.get()) 
  
        self.totalPaymentVar.set(format(totalPayment, '10.2f')) 
  
    def getMonthlyPayment(self, loanAmount, monthlyInterestRate, numberOfYears):  
        
        monthlyPayment = loanAmount * monthlyInterestRate / (1
        - 1 / (1 + monthlyInterestRate) ** (numberOfYears * 12)) 
        return monthlyPayment; 
        root = Tk() 
  
 
LoanCalculator() 

Ausgabe:

Code Erläuterung:

  • Das tkinter-Modul enthält das tk-Toolkit . Hier in diesem Beispiel importieren wir das gesamte Modul von tkinter in der ersten Zeile. Als Nächstes erstellen wir eine benutzerdefinierte Klasse mit dem Namen, LoanCalculatordie ihre eigenen Datenelement- und Elementfunktionen enthält.
  • def__init__(self)ist eine spezielle Methode in Python Class. Es ist ein Konstruktor einer Python-Klasse, dann erstellen wir ein Fenster mit Tk(). Die Beschriftungsfunktion erstellt ein Anzeigefeld für die Eingabe und verwendet die Rastermethode, um eine tabellenartige Struktur zu erhalten.

Warum haben wir klebrige Argumente verwendet?
Standardmäßig werden Widgets in der Mitte erstellt. Mithilfe von Argumenten können wir sie ändern. Es werden 4 Werte angenommen: N, S, E, W. dh Nord, Ost, Süd, West.

  • Dann haben wir einig Objekt mit dem Namen erstellen self.annualInterestRateVar, self.numberOfYearsVar, self.loanAmountVar, self.monthlyPaymentVar, self.totalPaymentVarund zum ersten 3 Objekt nehmen wir den Eingang mit entry()Funktion.
  • Dann erstellen wir die Schaltfläche "Zahlung berechnen". Wenn Sie auf die Schaltfläche klicken, wird die Funktion "Zahlung berechnen" aufgerufen, die zum Klassenkreditrechner gehört. Mit der Mainloop-Funktion führen wir unser Anwendungsprogramm aus.
  • Erstellen Sie eine Funktion computepayment()innerhalb der Klasse. Hier speichern wir unsere Eingaben des Objekts in einigen Variablen, um unsere mathematische Berechnung zu vereinfachen.
  • Im nächsten Schritt erstellen wir eine weitere Funktion mit dem Namen getMonthlyPayment()innerhalb der Klasse. Nach Erhalt der erforderlichen Eingaben berechnet es die monatliche Zahlung mit der im Programm angegebenen einfachen mathematischen Funktion.
  • Um nun tkinterroot=Tk() zu initialisieren , müssen wir ein Widget erstellen, das ein Fenster ist. Beachten Sie, dass das Root-Widget vor jedem anderen Widget erstellt werden muss.