📅  最后修改于: 2023-12-03 15:04:10.360000             🧑  作者: Mango
这是一个基于Python的实时货币转换器,使用了Tkinter图形用户界面框架。它能够将不同货币之间的实时汇率进行计算,并在界面上显示结果。
无需安装任何库,运行脚本即可。如需在其他Python项目中使用,可以将脚本作为模块引用。
python currency_converter.py
默认货币为美元,可以通过下拉菜单选择其他货币。
在右侧输入框中输入要转换的金额,然后点击“转换”按钮。
计算结果将出现在屏幕上方。
import tkinter as tk
import requests
class CurrencyConverter:
rates = {}
def __init__(self, url):
data = requests.get(url).json()
self.rates = data['rates']
def convert(self, from_currency, to_currency, amount):
initial_amount = amount
if from_currency != 'USD':
amount = amount / self.rates[from_currency]
amount = round(amount * self.rates[to_currency], 2)
return amount
class App:
def __init__(self):
self.converter = CurrencyConverter("https://api.exchangerate-api.com/v4/latest/USD")
self.window = tk.Tk()
self.window.title("Currency Converter")
self.window.geometry("400x150")
self.window.resizable(width=False, height=False)
self.from_currency = tk.StringVar(self.window)
self.from_currency.set("USD")
self.to_currency = tk.StringVar(self.window)
self.to_currency.set("EUR")
self.amount = tk.DoubleVar(self.window)
self.converted_amount = tk.StringVar()
self.from_currency_label = tk.Label(self.window, text="从")
self.from_currency_label.grid(column=0, row=0)
self.to_currency_label = tk.Label(self.window, text="到")
self.to_currency_label.grid(column=0, row=1)
self.amount_label = tk.Label(self.window, text="金额")
self.amount_label.grid(column=0, row=2)
self.converted_amount_label = tk.Label(self.window, text="结果:")
self.converted_amount_label.grid(column=0, row=3)
self.from_currency_dropdown = tk.OptionMenu(self.window, self.from_currency, *self.converter.rates.keys())
self.from_currency_dropdown.grid(column=1, row=0)
self.to_currency_dropdown = tk.OptionMenu(self.window, self.to_currency, *self.converter.rates.keys())
self.to_currency_dropdown.grid(column=1, row=1)
self.amount_entry = tk.Entry(self.window, textvariable=self.amount, width=15)
self.amount_entry.grid(column=1, row=2)
self.convert_button = tk.Button(self.window, text="转换", command=self.convert)
self.convert_button.grid(column=1, row=3)
self.converted_amount_label = tk.Label(self.window, textvariable=self.converted_amount)
self.converted_amount_label.grid(column=1, row=4)
self.window.mainloop()
def convert(self):
from_currency = self.from_currency.get()
to_currency = self.to_currency.get()
amount = self.amount.get()
converted_amount = self.converter.convert(from_currency, to_currency, amount)
self.converted_amount.set(str(converted_amount))
if __name__ == '__main__':
App()
我们创建了一个名为CurrencyConverter
的类,它具有向用户返回汇率、计算不同货币之间转换的功能。我们还创建了一个名为App
的类,它是一个Tkinter应用程序,用于向用户呈现一个简单的图形用户界面,使其更加可操作和美观。我们使用了请求库来调用API以获取实时汇率。最后,我们定义了convert()
方法以便在用户选择余额、货币种类以及点击转换按钮时进行转换。这个转换器支持所有可用的货币种类,并可以调整大小来适应各种使用情况。