特金特。条目返回我无法从 get() 方法解释的值

  • 本文关键字:get 方法 解释 金特 返回 python
  • 更新时间 :
  • 英文 :


我正在使用一个简单的表单来检索一些信息,然后我想插入SQLite数据库,但返回的值似乎不是单个字符串。

窗体在函数中创建

def formFunction():
entry_name = tkinter.Entry(myWindow)
entry_name.grid(row=1, column=1, sticky='w')
submit_button = tkinter.Button(newShootContainer, text='New Shoot', command= lambda: insertNewEvent(entry_name))
submit_button.grid(row=2, columnspan=2, sticky='e')

那么插入功能是...

def insertNewEvent(new_name):
print(new_name.get())
db = sqlite3.connect('data/ct.db')
cursor = db.cursor()
cursor.execute('''INSERT INTO t_event(e_name) values (?);''',(new_name.get()))

如果我在输入框中使用单个字符,这有效,但是如果我使用一个单词,例如"TEST",我会收到以下错误......

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.

但我试图插入一个单词,而不是 4 个单独的字母。知道为什么会这样吗?

正如 stovfl 在上面正确回答的那样,我喜欢为表单创建一个新窗口,即:

def formFunction(event):
root.withdraw() # hides your main window
top = Toplevel()  # New window Opens
top.title('New Shoot')
top.attributes('-zoomed', True) # Form will default into full screen
name = Label(text='Enter name: ')
name.grid(row=1, column=1, sticky='w')
entry_name = Entry(top) 
entry_name.grid(row=2, column=1, sticky='w')
submit_button = Button(top, text='New Shoot')
submit_button.bind('<Button-1>', insertNewName) # Button -1 is left click
submit_button.grid(row=2, columnspan=2, sticky='e')
exit_button = Button(top, text='Exit/Close', command=top.destroy)
exit_button.grid(row=3, column=1)
root.iconfiy() # brings your main window back

最新更新