flet run dosyaadi.py --android
import flet as flutter
import requests
import time
def main(page: flutter.Page):
page.title = "Döviz Kurları"
page.bgcolor = "#34495e"
def check_item_clicked(e):
e.control.checked = not e.control.checked
page.update()
# AppBar oluşturma
page.appbar = flutter.AppBar(
leading=flutter.Icon(flutter.icons.ADJUST), # AppBar'da sol üstte bir ikon (palet) ekler
leading_width=40, # Sol üstteki ikonun genişliği
title=flutter.Text("Döviz Kurları"), # AppBar başlığı
center_title=False, # Başlığı ortalamak yerine sola hizala
bgcolor=flutter.colors.SURFACE_VARIANT, # AppBar arkaplan rengi
actions=[
flutter.IconButton(flutter.icons.ACCESSIBLE_OUTLINED), # Güneş ikonlu bir IconButton ekler
flutter.IconButton(flutter.icons.FILTER_3), # Filtre ikonlu bir IconButton ekler
flutter.PopupMenuButton(
items=[
flutter.PopupMenuItem(text="Item 1"), # Popup menüde "Item 1" adlı bir öğe
flutter.PopupMenuItem(), # Popup menüde bir ayırıcı (divider)
flutter.PopupMenuItem(
text="Checked item", checked=False, on_click=check_item_clicked
), # Kontrollü bir PopupMenuItem ekler ve tıklama işlevi tanımlar
]
),
],
)
# Başlangıç değerleri
dolar_alis, dolar_satis, euro_alis, euro_satis, gbp_alis, gbp_satis = 0, 0, 0, 0, 0, 0
def veri_getir():
al = requests.get("https://www.doviz.com/api/v11/converterItems")
response_data = al.json()
# Döviz kurları
dolar_alis = response_data['data']['C']['USD']['buying']
dolar_satis = response_data['data']['C']['USD']['selling']
euro_alis = response_data['data']['C']['EUR']['buying']
euro_satis = response_data['data']['C']['EUR']['selling']
gbp_alis = response_data['data']['C']['GBP']['buying']
gbp_satis = response_data['data']['C']['GBP']['selling']
return float(dolar_alis), float(dolar_satis), float(euro_alis), float(euro_satis), float(gbp_alis), float(gbp_satis)
def bilgileri_guncelle():
nonlocal dolar_alis, dolar_satis, euro_alis, euro_satis, gbp_alis, gbp_satis
dolar_alis, dolar_satis, euro_alis, euro_satis, gbp_alis, gbp_satis = veri_getir()
usd_degeri.value = f"Dolar: Alış: {dolar_alis} - Satış: {dolar_satis}"
euro_degeri.value = f"Euro: Alış: {euro_alis} - Satış: {euro_satis}"
gbp_degeri.value = f"GBP: Alış: {gbp_alis} - Satış: {gbp_satis}"
page.update()
def otomatik_guncelle():
while True:
bilgileri_guncelle()
time.sleep(5) # Verileri 5 saniyede bir güncelle
# Otomatik güncelleme işlemini başlat
import threading
auto_update_thread = threading.Thread(target=otomatik_guncelle)
auto_update_thread.daemon = True
auto_update_thread.start()
usd_degeri = flutter.Text(value="", color="black", size=18)
euro_degeri = flutter.Text(value="", color="black", size=18)
gbp_degeri = flutter.Text(value="", color="black", size=18)
usd_row = flutter.Row(controls=[usd_degeri])
euro_row = flutter.Row(controls=[euro_degeri])
gbp_row = flutter.Row(controls=[gbp_degeri])
kutu = flutter.Container(content=(flutter.Column(controls=[usd_row, euro_row, gbp_row])),bgcolor="white",border_radius=20,shadow=flutter.BoxShadow(spread_radius=1,blur_radius=10),padding=20)
page.add(kutu)
flutter.app(target=main)