使用DB变量进行Tkinter数学运算

时间:2018-03-09 15:26:06

标签: python database sqlite tkinter

我需要使用从中获取的变量进行数学运算 a:数据库
b:tkinter条目

#Get database number
cantidad = IntVar()
cursor.execute('''SELECT terneros FROM animales''')
cantidad.set(cursor.fetchone())

然后,一个tkinter条目:

ent_peso = Entry (ventana1, textvariable=peso).grid(row=3, column=2)

当我尝试进行以下操作时

total = StringVar()
total.set(peso*cantidad.get())
messagebox.showinfo("Resultado", "$: "+ total.get())

我明白了

TypeError: getdouble() argument must be str, not tuple

整个代码:

    peso = IntVar()
    def calcular():
        cantidad = IntVar()
        cursor.execute('''SELECT terneros FROM animales''')
        cantidad.set(cursor.fetchone())
        total = StringVar()
        total.set(peso.get()*cantidad.get())
        messagebox.showinfo("Resultado", "$: "+ total.get())




    ent_peso = Entry (ventana, textvariable=peso).grid(row=3, column=2)
    but_calc = Button(ventana, text="Calcular", command=calcular).place(x=150,y=115)

    ventana.mainloop()

1 个答案:

答案 0 :(得分:2)

您的问题在于以下代码行:

cantidad.set(cursor.fetchone())

cursor.fetchone()方法返回一个元组,其中包含查询中的所有值,在本例中为(terneros,)。 您应该将此行代码更改为

cantidad.set(cursor.fetchone()[0])

以获取此元组的内容。