使用 PyQt5 在 Python 中構建貸款計算器


歡迎閱讀這篇關於使用 Python 中的 PyQt5 構建貸款計算器的詳細文章。PyQt5 庫強大的功能可用於為我們的計算器提供簡單易用的使用者介面。本文將詳細解釋如何構建這樣的計算器,並提供實際示例來幫助您更好地理解這一過程。

PyQt5 簡介

PyQt5 是 Qt 庫的一套 Python 繫結,可用於建立跨平臺應用程式。它結合了 Python 和 Qt 的最佳功能,使開發人員能夠使用 Python 編寫程式碼,同時利用 Qt 模組的龐大庫。在建立桌面應用程式時,PyQt5 經常被使用。

貸款計算器簡介

透過貸款計算器,您可以根據貸款期限、利率和金額計算償還貸款所需的金額。透過提供圖形使用者介面,使用者可以輕鬆輸入這些數字並獲得計算結果。

使用 PyQt5 建立貸款計算器的步驟

以下步驟是使用 PyQt5 構建貸款計算器的典型步驟:

  • 安裝 首先安裝 PyQt5 庫(如果尚未安裝)。可以使用 pip 進行安裝:

pip install PyQt5
  • 設計 GUI 這包括開發各種 GUI 元件,例如用於輸入貸款資訊的文字欄位和計算按鈕。

  • 實現邏輯 根據使用者的輸入,定義貸款計算的邏輯。

  • 將邏輯繫結到 GUI 將實現的邏輯連線到 GUI 元件,以便在操作正確的 GUI 元件時執行。

使用 PyQt5 的貸款計算器示例

在這裡,我們將向您展示如何使用 Python 的 PyQt5 構建一個簡單的貸款計算器。

示例 1:基本貸款計算器

在本示例中,我們將構建一個簡單的貸款計算器,其中包含貸款金額、利率和期限的欄位。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
from PyQt5.QtGui import QDoubleValidator
from PyQt5.QtCore import Qt

class LoanCalculator(QWidget):
   def __init__(self):
      super().__init__()

      self.initUI()

   def initUI(self):
      layout = QVBoxLayout()

      self.amountLabel = QLabel("Loan Amount:")
      self.amountLineEdit = QLineEdit()
      self.amountLineEdit.setValidator(QDoubleValidator(0, 1000000, 2))

      self.interestLabel = QLabel("Interest Rate:")
      self.interestLineEdit = QLineEdit()
      self.interestLineEdit.setValidator(QDoubleValidator(0, 100, 2))

      self.termLabel = QLabel("Loan Term (years):")
      self.termLineEdit = QLineEdit()
      self.termLineEdit.setValidator(QDoubleValidator(0, 100, 0))

      self.resultLabel = QLabel("")

      self.calculateButton = QPushButton("Calculate")
      self.calculateButton.clicked.connect(self.calculateLoan)

      layout.addWidget(self.amountLabel)
      layout.addWidget(self.amountLineEdit)
      layout.addWidget(self.interestLabel)
      layout.addWidget(self.interestLineEdit)
      layout.addWidget(self.termLabel)
      layout.addWidget(self.termLineEdit)
      layout.addWidget(self.resultLabel)
      layout.addWidget(self.calculateButton)

      self.setLayout(layout)

   def calculateLoan(self):
      P = float(self.amountLineEdit.text())
      r = float(self.interestLineEdit.text()) / 100 / 12
      n = float(self.termLineEdit.text()) * 12

      M = P * (r * (1 + r) ** n) / ((1 + r) ** n - 1)

      self.resultLabel.setText(f"Monthly payment: {M:.2f}")

def main():
   app = QApplication(sys.argv)

   calculator = LoanCalculator()
   calculator.show()

   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

此 PyQt5 程式根據使用者輸入生成一個貸款計算器,該計算器計算並顯示月供。

calculateLoan 方法實現了貸款計算邏輯,它使用以下公式計算給定利率下的貸款支付:

M = P[r(1+r)^n]/[(1+r)^n – 1]

其中

  • M 是您的定期付款。

  • P 是本金貸款金額。

  • r 是您的月利率,透過將您的年利率除以 12 來計算。

  • n 是您的貸款還款期限,即您將支付的付款次數。

在下面的示例中,我們將改進我們的計算器,使其能夠處理更復雜的情況並提供更詳細的資訊。

示例 2:高階貸款計算器

在本示例中,我們將向我們的貸款計算器新增更多功能,例如計算貸款期限內的總付款的能力。

注意− 此高階示例主要關注新功能,並假設讀者已經熟悉 PyQt5。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
from PyQt5.QtGui import QDoubleValidator
from PyQt5.QtCore import Qt

class AdvancedLoanCalculator(QWidget):
   def __init__(self):
      super().__init__()

      self.initUI()

   def initUI(self):
      layout = QVBoxLayout()

      self.amountLabel = QLabel("Loan Amount:")
      self.amountLineEdit = QLineEdit()
      self.amountLineEdit.setValidator(QDoubleValidator(0, 1000000, 2))

      self.interestLabel = QLabel("Interest Rate:")
      self.interestLineEdit = QLineEdit()
      self.interestLineEdit.setValidator(QDoubleValidator(0, 100, 2))

      self.termLabel = QLabel("Loan Term (years):")
      self.termLineEdit = QLineEdit()
      self.termLineEdit.setValidator(QDoubleValidator(0, 100, 0))

      self.monthlyPaymentLabel = QLabel("Monthly payment:")
      self.totalRepaymentLabel = QLabel("Total repayment:")

      self.calculateButton = QPushButton("Calculate")
      self.calculateButton.clicked.connect(self.calculateLoan)

      layout.addWidget(self.amountLabel)
      layout.addWidget(self.amountLineEdit)
      layout.addWidget(self.interestLabel)
      layout.addWidget(self.interestLineEdit)
      layout.addWidget(self.termLabel)
      layout.addWidget(self.termLineEdit)
      layout.addWidget(self.monthlyPaymentLabel)
      layout.addWidget(self.totalRepaymentLabel)
      layout.addWidget(self.calculateButton)

      self.setLayout(layout)

   def calculateLoan(self):
      P = float(self.amountLineEdit.text())
      r = float(self.interestLineEdit.text()) / 100 / 12
      n = float(self.termLineEdit.text()) * 12

      M = P * (r * (1 + r) ** n) / ((1 + r) ** n - 1)
      Total = M * n

      self.monthlyPaymentLabel.setText(f"Monthly payment: {M:.2f}")
      self.totalRepaymentLabel.setText(f"Total repayment: {Total:.2f}")

def main():
   app = QApplication(sys.argv)

   calculator = AdvancedLoan

在此應用程式中,calculateLoan 方法被擴充套件以計算並顯示貸款期限內的總還款額。這隻需將總付款次數除以月付款額即可獲得。

結論

在本篇文章中,我們介紹了 PyQt5,並展示瞭如何使用它來構建一個簡單但有用的 Python 貸款計算器應用程式。我們遍歷了程式碼並討論了計算是如何完成和顯示的。

現在,您應該能夠實現和使用基本的貸款計算技術,以及使用 PyQt5 在 Python 中建立 GUI 應用程式。我們希望本文對您有所幫助,無論您是嘗試學習 Python GUI 程式設計的新手,還是希望提升技能的經驗豐富的開發人員。

隨著您對 PyQt5 的熟悉程度越來越高,我們鼓勵您探索其更高階的功能,並使用它來建立更復雜的應用程式。請記住,學習新的程式語言或庫的關鍵是實踐。

更新於: 2023年7月18日

279 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告