TKinter acionando botão antes da hora

12 views
Skip to first unread message

Wilmar Bastos de Viveiros

unread,
Sep 10, 2021, 9:37:55 AMSep 10
to Python Brasil
ola pessoal, comecei a estudar python a pouco tempo e estou com um problema no código abaixo e não consigo entender o que está errado

primeiro a tela é "desenhada" e ao preencher os campos e clicar em "incluir" os dados deveriam ser salvos no banco, porém, ao executar o script a função "saveFinalizado" parece ser executada antes mesmo de clicar no botao

from tkinter import *
from tkcalendar import DateEntry
from datetime import datetime
import mysql.connector

## TELA DE INCLUSÃO DE FINALIZADOS ##
dbconfig = {'host': 'db4free.net',
            'user': '******',
            'password': '********',
            'database': 'dbfinalizados', }
def saveFinalizado():
    _SQL = """insert into main (mainid, nome, datafinalizado, original, plataformaid) values (%s, %s, %s, %s, %s)"""
    conn = mysql.connector.connect(**dbconfig)
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM controleid')
    row = cursor.fetchone()
    print(row[0])
    cursor.execute(_SQL, (row[0], nomeJogo.get(), cal.get_date(), original.get(), plataforma.get() ))
    cursor.execute('update controleid set mainid = '+ str(row[0]+1))
    conn.commit()
    cursor.close()
    conn.close()
    print(nomeJogo.get())
    print(original.get())
    print(plataforma.get())
    print(cal.get_date())

conn = mysql.connector.connect(**dbconfig)
cursor = conn.cursor()
cursor.execute('SELECT nomeplataforma, plataformaid FROM plataforma')
fin = Tk()
fin.title("Incluir jogo finalizado")
fin.geometry("500x400")
##app.configure(background="#dde")
nomeJogo=StringVar()
Label(fin, text="Nome do jogo").grid(row=1, column=1, sticky=W)
Entry(fin, textvariable=nomeJogo,width=30).grid(row=1, column=2, sticky=W)

original =IntVar()
Label(fin, text="Original").grid(row=2, column=1, sticky=W)
Radiobutton(fin, text="Sim", variable=original, value=1).grid(row=2, column=2, sticky=W)
Radiobutton(fin, text="Não", variable=original, value=0).grid(row=2, column=3, sticky=W)

cal = DateEntry(fin, year=int(datetime.today().strftime('%Y')), month=int(datetime.today().strftime('%m')), day=int(datetime.today().strftime('%d')), background='darkblue', foreground='white', borderwidth=2)
cal.grid(row=1, column=4, sticky=W)

plataforma = IntVar()
linha=3
coluna =1
for (nomeplataforma, plataformaid) in cursor:
    Radiobutton(fin, text=nomeplataforma, variable=plataforma, value=plataformaid).grid(row=linha, column=coluna, sticky=W)
    if coluna < 5:
        coluna+=1
    else:
        linha+=1
        coluna=1
cursor.close()
conn.close()
botao = Button(fin, text ="Incluir", command = saveFinalizado()).grid(row=linha+1, column=5, sticky=W)
fin.mainloop()

Reply all
Reply to author
Forward
0 new messages