import tkinter as tk
arayüz = tk.Tk()
arayüz.title("Anket Desteklenme")
arayüz.geometry("300x**güçlü metin**200")
desteklenme = tk.Label(text="Desteklenme Miktarı:")
desteklenme.place(x=20,y=20)
y = tk.StringVar()
desteklenme_girisi = tk.Entry(textvariable=y)
desteklenme_girisi.place(x=143,y=20)
desteklenmeme = tk.Label(text="Desteklenmeme Miktarı:")
desteklenmeme.place(x=10,y=40)
x = tk.StringVar()
desteklenmeme_girisi = tk.Entry(textvariable=x)
desteklenmeme_girisi.place(x=143,y=40)
def giris_komut():
deslm = y.get()
dlmm = x.get()
rating = y / (deslm + dlmm)
rating_yuzde = rating * 100
print("Bu anketin desteklenme oranı: %", rating_yuzde)
print(deslm,"\n",dlmm)
if (rating_yuzde > 90):
print("Bu anket çok desteklendi")
elif (rating_yuzde > 50):
print("Bu anket beğenildi")
elif (rating_yuzde > 30):
print("Bu anket beğenilmedi")
else:
print("Bu anketten nefret edildi")
giris = tk.Button(text="Giriş",command=giris_komut)
giris.place(x=234,y=60)
arayüz.mainloop()
böyle kod yazdım çalışmıyor
şu hatayı veriyor
Exception in Tkinter callback
Traceback (most recent call last):
File "c:\Users\Gulduren\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py",
line 1892, in __call__
return self.func(*args)
File "C:\Users\Gulduren\AppData\Local\Temp\ipykernel_5660\1296768705.py", line 24, in
giris_komut
rating = y / (deslm + dlmm)
TypeError: unsupported operand type(s) for /: 'StringVar' and 'str'
lütfen yardım edin
#pyhton
Kodunuzu ctrl+e içinde atar mısınız.
Evet ama kodun asıl kaynağından kopyalayıp yapıştırır mısınız. Başka bir yerden kopyaladınız şimdi sanırım o yüzden bazı yerler değişmiş örn. bu arayüz.geometry("300x200")
buarayüz.geometry("300x**güçlü metin**200")
olmuş.
@makalidap
import tkinter as tk
arayüz = tk.Tk()
arayüz.title("Anket Desteklenme")
arayüz.geometry("300x200")
desteklenme = tk.Label(text="Desteklenme Miktarı:")
desteklenme.place(x=20,y=20)
y = tk.StringVar()
desteklenme_girisi = tk.Entry(textvariable=y)
desteklenme_girisi.place(x=143,y=20)
desteklenmeme = tk.Label(text="Desteklenmeme Miktarı:")
desteklenmeme.place(x=10,y=40)
x = tk.StringVar()
desteklenmeme_girisi = tk.Entry(textvariable=x)
desteklenmeme_girisi.place(x=143,y=40)
def giris_komut():
deslm = y.get()
dlmm = x.get()
rating = y / (deslm + dlmm)
rating_yuzde = rating * 100
print("Bu anketin desteklenme oranı: %", rating_yuzde)
print(deslm,"\n",dlmm)
if (rating_yuzde > 90):
print("Bu anket çok desteklendi")
elif (rating_yuzde > 50):
print("Bu anket beğenildi")
elif (rating_yuzde > 30):
print("Bu anket beğenilmedi")
else:
print("Bu anketten nefret edildi")
giris = tk.Button(text="Giriş",command=giris_komut)
giris.place(x=234,y=60)
arayüz.mainloop()
bu saçmalığı nasıl fark edemediniz merak ettim ?
@BandoLero hangisi valla hiç görmedim
iyi de gene hata var kodda
rating = y / (deslm + dlmm)
y bir tkinter objesi y’yi bir şeye nasıl bölebilirsiniz ki y’nin değerini bir şeye bölmeniz gerekir. ve deslm, dlmn değerlerini de inte çevirmeniz gerekir.
işte bende bu yüzden yardım istiyorum
onu bende anladım ama daha pyhtonda yeniyim bu yüzden nasıl inte çevireceğimi felan hiç bir şey bilmiyorum
aib
Nisan 22, 2023, 11:32öö
14
Hata veren satirdaki degiskenlerin turlerine bakarsaniz StringVar
, str
ve str
olduklarini gorebilirsiniz.
Sayi olmalarini beklediginize gore float
gibi bir fonksiyon ile sayiya cevirmeniz gerekecektir.
1 Beğeni
Yani o kısmı böyle
deslm = int(y.get())
dlmm = int(x.get())
rating = deslm/ (deslm + dlmm)
yada
deslm = float(y.get())
dlmm = float(x.get())
rating = deslm/ (deslm + dlmm)
böyle yapmanız gerekir.
sağolun @aib 'in dediğide oluyor seninkide çok teşekkürler