customtkinter|tkinter|json|urllib.requests|urlopen

customtkinter|tkinter|json|urllib.requests|urlopen

Publish Date: Jul 11
0 0

import customtkinter as ctk
import tkinter as tk
import json
from urllib.request import urlopen

def get_exchange_rates():
try:
url = "https://openexchangerates.org/api/latest.json?app_id=YOUR_APP_ID"
response = urlopen(url)
data = json.loads(response.read().decode("utf-8"))
rates = data["rates"]
return rates
except:
return {
"USD": 1.0,
"EUR": 0.9,
"RUB": 100.0,
"JPY": 140.0,
"CNY": 7.0
}

def convert_currency():
"""Конвертирует валюту."""
try:
amount = float(amount_entry.get()) # Получаем введенную сумму и преобразуем в число
from_currency = from_currency_combobox.get() # Получаем выбранную исходную валюту
to_currency = to_currency_combobox.get() # Получаем выбранную целевую валюту
rates = get_exchange_rates() # Получаем курсы валют

    # Конвертация
if from_currency in rates and to_currency in rates:
usd_amount = amount / rates[from_currency] # Сначала переводим в USD
converted_amount = usd_amount * rates[to_currency] # Потом в целевую валюту
result_label.configure(text=f"{amount:.2f} {from_currency} = {converted_amount:.2f} {to_currency}") # форматированный вывод
else:
result_label.configure(text="Ошибка: Неверные валюты.")
except ValueError:
result_label.configure(text="Ошибка: Введите корректную сумму.") # Проверка на корректный ввод
Enter fullscreen mode Exit fullscreen mode



  1. Основная часть программы

ctk.set_appearance_mode("dark") # Устанавливаем темную тему
ctk.set_default_color_theme("dark-blue") # Устанавливаем тему

window = ctk.CTk()
window.title("Конвертер валют")
window.geometry("400x300") # Задаем размер окна

4. Виджеты (элементы интерфейса)

amount_label = ctk.CTkLabel(window, text="Сумма:")
amount_label.pack(pady=5)

amount_entry = ctk.CTkEntry(window, placeholder_text="Введите сумму")
amount_entry.pack(pady=5)

from_currency_label = ctk.CTkLabel(window, text="Из валюты:")
from_currency_label.pack(pady=5)

currencies = list(get_exchange_rates().keys()) # Получаем список валют
from_currency_combobox = ctk.CTkComboBox(window, values=currencies)
from_currency_combobox.set("USD") # Устанавливаем дефолтное значение
from_currency_combobox.pack(pady=5)

to_currency_label = ctk.CTkLabel(window, text="В валюту:")
to_currency_label.pack(pady=5)

to_currency_combobox = ctk.CTkComboBox(window, values=currencies)
to_currency_combobox.set("EUR") # Устанавливаем дефолтное значение
to_currency_combobox.pack(pady=5)

convert_button = ctk.CTkButton(window, text="Конвертировать", command=convert_currency)
convert_button.pack(pady=10)

result_label = ctk.CTkLabel(window, text="")
result_label.pack(pady=5)

5. Запускаем главный цикл

window.mainloop()

Comments 0 total

    Add comment