【发布时间】:2018-05-08 14:48:21
【问题描述】:
我正在尝试将 Enter 键 与 按钮 绑定。
在下面的代码中,我试图从条目小部件中获取条目,
当按下按钮bt 时,它会调用enter() 方法来获取条目。
我还希望通过按 Enter 键来调用它,但我没有得到想要的结果。
没有读取在条目小部件中输入的值,并且调用了 enter 方法,并且在我的数据库中插入了一个空白空间
帮我解决问题,谢谢!
from tkinter import *
import sqlite3
conx = sqlite3.connect("database_word.db")
def count_index():
cur = conx.cursor()
count = cur.execute("select count(word) from words;")
rowcount = cur.fetchone()[0]
return rowcount
def enter(): #The method that I am calling from the Button
x=e1.get()
y=e2.get()
ci=count_index()+1
conx.execute("insert into words(id, word, meaning) values(?,?,?);",(ci,x,y))
conx.commit()
fr =Frame() #Main
bt=Button(fr) #Button declaration
fr.pack(expand=YES)
l1=Label(fr, text="Enter word").grid(row=1,column=1)
l2=Label(fr, text="Enter meaning").grid(row=2,column=1)
e1=Entry(fr)
e2=Entry(fr)
e1.grid(row=1,column=2)
e2.grid(row=2,column=2)
e1.focus()
e2.focus()
bt.config(text="ENTER",command=enter)
bt.grid(row=3,column=2)
bt.bind('<Return>',enter) #Using bind
fr.mainloop()
【问题讨论】:
-
就像按钮
command一样,bind 也接受函数的引用,而不是调用函数本身。将enter()更改为enterinbt.bind。 -
除了 Nae 的评论之外,我认为您希望将
<Return>绑定到条目,而不是没有键盘焦点的按钮。 -
我也尝试使用绑定到条目。没有用,并且在通过按
将其聚焦在按钮上后也尝试聚焦,即使这不起作用。 -
没有工作,你的意思是有错误还是没有达到你的预期?
-
没有显示错误,只是在我的数据库中插入了一个 NULL,这意味着该方法运行良好,但无法从条目中获取值,或者它是在输入之前调用。我还必须说,如果单击按钮,程序会按预期工作。
标签: python button tkinter bind tkinter-entry