Çözüldü Python kodundaki hata nedir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

AriceN

Hectopat
Katılım
16 Kasım 2020
Mesajlar
2.244
Çözümler
15
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Bilgisayar Mühendisliği Öğrencisi
Python:
from tkinter import *
import sqlite3.
import os.

# Main Program.
root = Tk()
root.title("Minerals and Vitamins")
width = 400.
height = 240.
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = (screen_width / 2) - (width / 2)
y = (screen_height / 2) - (height / 2)
root.geometry("%dx%d+%d+%d" % (width, height, x, y))
root.resizable(0, 0)

dosya = 'vt.sqlite'
dosya_mevcut = os.path.exists(dosya)

vt = sqlite3.connect(dosya)
im = vt.cursor()

mineral_datas = [("Calcium", 8.5, 10.4, "Wheat flour - 40 mg", "Corn flour - 9 mg", "Rice - 20 mg"),
 ("Sodium", 136, 145, "9 mg in Hot Red Pepper", "7 mg in Avocado", "4 mg in Quince"),
 ("Iron", 60, 170, "Pumpkin seeds - 10 mg", "Pistachios - 4 mg", "Moon core - 7 mg"),
 ("Magnesium", 2.0, 2.7, "Pumpkin seeds - 10 mg", "Pistachios - 4 mg", "Moon core - 7 mg"),
 ("Phosphorus", 2.7, 4.5, 'Dried apricots - 108 mg', 'Banana - 26 mg', 'Grapes - 20 mg')]

im.execute("""CREATE TABLE IF NOT EXISTS minerals.
(name TEXT, min_value REEL, max_value REEL, food_1 TEXT, food_2 TEXT, food_3 TEXT)""")

if not dosya_mevcut:
 for data in mineral_datas:
 im.execute("""INSERT INTO minerals VALUES(?, ?, ?, ?, ?, ?)""", data)
 vt.commit()

def getv(variable):
 variable = varList.get()
 return variable.

def buttonfunction(variable, entryvalue):
 last_value = int(entryvalue.get())
 if variable == "Calsium":
 im.execute("""SELECT * FROM minerals WHERE name = "Calcium" """)
 deger = im.fetchone()
 print(deger[1])
 if last_value < deger[1]:
 print("eksik")

# ==============================LABELS=========================================
hello_label = Label(root, text="Minerals and Vitamins", font=('MonoLisa', 15))
hello_label.pack(fill=X)

value_label = Label(root, text="Your Values: ", font=('MonoLisa', 15), bd=15)
value_label.place(x=15, y=60)

value_choose_label = Label(root, text="Your Chooses: ", font=('MonoLisa', 15), bd=15)
value_choose_label.place(x=15, y=110)

# ==============================ENTRY WIDGETS==================================
entryvalue = IntVar()
value_input = Entry(root, textvariable=entryvalue, font='MonoLisa')
value_input.place(x=165, y=78)

varList = StringVar(root)
varList.set("Please Choose")
choose_list = ["Calcium",
 "Sodium",
 "Iron",
 "Magnesium",
 "Phosphorus",
 "Potassium",
 "Zinc",
 "Copper",
 "Chromium",
 "Iodine",
 "Selenium",
 "Manganese",
 "Fluorine"]

choose_menu = OptionMenu(root, varList, *choose_list, command=getv)
choose_menu.place(x=165, y=122)

submit_button = Button(root, text="Submit", font=('Calibri', 10), command=buttonfunction)
submit_button.place(x=310, y=180)
# ==============================LOOP==================================
root.mainloop()

Hocalarım bir program yapmaya çalışıyorum. Burada entry ile aldığım veri ile optionmenude seçilen mineral alınacak ve veri tabanındaki değerler ile karşılaştırılacak ancak buton fonksiyonu tam olarak çalışmıyor.
Verdiği hata şu: Typeerror: buttonfunction() missing 2 required positional arguments: 'variable' and 'entryvalue'.
Değerleri fonksiyonun içine nasıl alacağımı çözemedim hatta şu var ki diğer fonksiyonda variable değişkenine atadığı değeri programa vermiyor. Ne kadar anlatabildim bilmiyorum ancak yardım edebilirseniz sevinirim.
 
Çözüm
Submit_button = button(root, text="submit", font=('calibri', 10), command= lambda: Action(variable, entryvalue))

hocam buttonfunction için parametreleri vermemişsin.
Şu kodu dener misin? Stack'dan de yazdım ama şu an ben deneyemiyorum. Çalışırsa bilgi verir misin?
Submit_button = button(root, text="submit", font=('calibri', 10), command= lambda: Action(variable, entryvalue))

hocam buttonfunction için parametreleri vermemişsin.
Şu kodu dener misin? Stack'dan de yazdım ama şu an ben deneyemiyorum. Çalışırsa bilgi verir misin?
 
Son düzenleme:
Çözüm

Hocam denedim ancak çalışmadı.
 
Hocam kusura bakma Action benm fonksiyonun ismi oraya sen buttonfunction yazacaksın.

Çalışırsa haber verir misin?
Olmadı hocam. Çok önemli olmasaydı benim için bu kadar meşgul etmezdim kusura bakmayın lütfen.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…