【发布时间】:2021-09-12 14:35:37
【问题描述】:
我的代码-
import tkinter as tk
import mysql.connector
# SQL CONNECTION
try:
data = mysql.connector.connect(host="localhost", user="root", password="", database="login cred")
cursor = data.cursor()
print("Connection Successful")
except:
print("Not Successful")
# GUI CREATION
registration_window = tk.Tk()
registration_window.geometry("1000x500")
registration_window.title("Register Yourself")
# TEXT BOX
firstname = tk.Entry(registration_window, show=None)
lastname = tk.Entry(registration_window, show=None)
email = tk.Entry(registration_window, show=None)
password = tk.Entry(registration_window, show="*")
# DATABASE
def insert():
FirstName = firstname.pack()
LastName = lastname.pack()
Email = email.pack()
Password = password.pack()
query = "insert into username_password values('" + FirstName + "', '" + LastName + "', '" + Email + "', '" + Password + "')"
cursor.execute(query)
data.commit()
print("Record Saved Successfully")
cursor.close()
data.close()
# Buttons-
register = tk.Button(registration_window, text="REGISTER", command=insert())
clear = tk.Button(registration_window, text="Clear", command=registration_window.destroy)
register.pack()
clear.pack()
# Open Window
registration_window.mainloop()
这是我得到的错误-
Traceback(最近一次调用最后一次):文件 “C:\Users\Dell\PycharmProjects\First Project\tkinterdemo.py”,第 42 行, 在 register = tk.Button(registration_window, text="REGISTER", command=insert()) 文件“C:\Users\Dell\PycharmProjects\First Project\tkinterdemo.py",第 32 行,插入 sql = "插入 username_password 值('" + FirstName + "', '" + LastName + "', '" + Email + "', '" + Password + "')" 类型错误: 只能将 str(不是“NoneType”)连接到 str
我该怎么办??
【问题讨论】:
-
您需要在
insert()中调用firstname.get()而不是firstname.pack()。其他Entry小部件也是如此。 -
好吧,如果我这样做,我的文本框就会消失
-
您需要在
insert()之外致电.pack()。command=insert()也应该是command=insert。