Merhaba. Python tkinter ile hesap makinesi yaptım. Sonra dedim böyle kalmasın, eğer mesela sonuç eğer 1453 çıkarsa yeni bir pencere açılsın.
Biraz uğraştım, bir türlü çözemedim. Şimdi kodlara bakarsak;
import tkinter as tk
def topla():
if sayi1.get().isdigit() and sayi2.get().isdigit():
s1 = float(sayi1.get())
s2 = float(sayi2.get())
sonuc.configure(text=str(s1+s2))
def cikar():
if sayi1.get().isdigit() and sayi2.get().isdigit():
s1 = float(sayi1.get())
s2 = float(sayi2.get())
sonuc.configure(text=str(s1-s2))
def carp():
if sayi1.get().isdigit() and sayi2.get().isdigit():
s1 = float(sayi1.get())
s2 = float(sayi2.get())
sonuc.configure(text=str(s1*s2))
def bolme():
if sayi1.get().isdigit() and sayi2.get().isdigit():
s1 = float(sayi1.get())
s2 = float(sayi2.get())
sonuc.configure(text=str(s1/s2))
def kombinasyon():
if cevap1.configure("1453"):
kombinasyon_pencere = tk.Tk()
kombinasyon_pencere.title("Kombinasyon penceresi")
kombinasyon_pencere.geometry("300x300")
pencere = tk.Tk()
pencere.title("Hesap Makinesi")
ekrangenis = pencere.winfo_screenwidth()//2-160
ekranyuksek = pencere.winfo_screenheight()//2-150
pencere.geometry("320x300+{}+{}".format(ekrangenis,ekranyuksek))
sonuc = tk.Label(pencere, text="Sonuç",font="Coruier 16 bold",width=30,justify="center")
sonuc.place(x=-50,y=20)
sayi1 = tk.Entry(pencere, font="Coruier 14 bold",width=15,justify="right")
sayi1.place(x=70,y=50)
sayi2 = tk.Entry(pencere, font="Coruier 14 bold",width=15,justify="right")
sayi2.place(x=70,y=80)
tus1 = tk.Button(pencere, text="+",font="Coruier 14 bold",width=10,command = topla)
tus1.place(x=90,y=110)
tus2 = tk.Button(pencere, text="-",font="Coruier 14 bold",width=10,command = cikar)
tus2.place(x=90,y=150)
tus3 = tk.Button(pencere, text="x",font="Coruier 14 bold",width=10,command = carp)
tus3.place(x=90,y=190)
tus4 = tk.Button(pencere, text="/",font="Coruier 14 bold",width=10,command = bolme)
tus4.place(x=90,y=230)
pencere.mainloop()
Tek farklı olan yer,"def kombinasyon()" olan kısım. Orası haricinde hesap makinesi gayet doğal. Ama dediğim gibi cevap1(yani sonucu gösteren kısmı) 1453 yapınca yeni bir pencere açılması yapmak istediğim. Şu şekilde birşeyler denedim;
- İlk önce kombinasyon kısmına sadece if kısmını yazıp yeni bir def yazdım. Oraya pencerenein açılmasını sağlayan kodları ekledim. Sonra if kısmına geri gelip command ile birbirlerine bağlamayı denedim. Olmadı :/
- Sonrasında ise def kısmı olmadan sadece if olarak denedim yine olmadı.
- Sonrasında text="1453.0" olarak değil de text = str("1453.0") olarak denedim yine olmadı.
- Sonrasında birkaç şey daha denedim. Ama yine olmadı. Galiba oradaki configurasyon kısmını başka bir şeyle değiştiricez ama neyle bilmiyorum...
Yine de yardımlarınızı bekliyorum.