Python 3.x 输入按钮没有';t触发器
我试图用python打开一个google搜索窗口,但enter按钮触发器不起作用。 因此,如果你按下回车按钮,它应该会打开窗口,但它不会。 我还使用tkinter for gui。 帮帮我:(谢谢 (我正在使用win 10)Python 3.x 输入按钮没有';t触发器,python-3.x,tkinter,Python 3.x,Tkinter,我试图用python打开一个google搜索窗口,但enter按钮触发器不起作用。 因此,如果你按下回车按钮,它应该会打开窗口,但它不会。 我还使用tkinter for gui。 帮帮我:(谢谢 (我正在使用win 10) 将tkinter作为tk导入 def keyup(): 开场白() def开启器(): 导入网络浏览器 text=name.get().strip() query=str(文本) webbrowser.open(“www.google.com/search?rlz=1cch
将tkinter作为tk导入
def keyup():
开场白()
def开启器():
导入网络浏览器
text=name.get().strip()
query=str(文本)
webbrowser.open(“www.google.com/search?rlz=1cchzl_koUS766US766&ei=rDxSWtPFOeKt0gK4_YioDg&q=“+query”)
def clear():
名称。删除(0,“结束”)
root=tk.tk()
ler=tk.Label(root,text=“您想搜索什么?”,font=(“Helvetica”,40))
ler.pack()
name=tk.Entry(根,宽度=100)
name.pack()
widget=tk.Button(根,文本=search,命令=opener,宽度=30,高度=3)
widget.pack()
widget.bind(“”,opener)
加宽=tk.按钮(根,文本=清除,命令=清除,宽度=10,高度=3)
更宽的包()
root.mainloop()
如何修复此问题?使用Tk,事件绑定
我认为应该是
而不是
。此外,缩进似乎不正确。您几乎没有错误
对于键“Enter”
是事件
。您还可以将
分配给根目录
,即使未选择/聚焦按钮,它也可以工作
root.bind('<Return>', opener)
而“Enter”
仅当Entry
处于焦点时才会运行opener
command=
执行不带参数的函数,但bind()
使用一个参数执行函数,因此您必须使用具有默认值的参数定义函数,然后它将同时使用这两个参数
def opener(event=None):
在url中使用http://
,因为您可以使用file://
打开本地文件。在Linux上,不使用http://
的链接被视为本地文件
较小的错误:将所有import
放在顶部,使代码更可读,Entry
返回字符串,这样您就不需要str()
编辑:添加了name.bind(“”,opener)
将tkinter作为tk导入
导入网络浏览器
def开启器(事件=无):
text=name.get().strip()
网络浏览器打开(“http://www.google.com/search?q=“+文本)
def clear():
名称。删除(0,“结束”)
root=tk.tk()
ler=tk.Label(root,text=“您想搜索什么?”,font=(“Helvetica”,40))
ler.pack()
name=tk.Entry(根,宽度=100)
name.pack()
名称.绑定('',开启器)#添加
widget=tk.Button(root,text='search',command=opener,width=30,height=3)
widget.pack()
widget.bind(“”,opener)
加宽=tk.按钮(root,text='clear',command=clear,width=10,height=3)
更宽的包()
root.mainloop()
您的代码缩进错误-因此我们无法测试它在console/terminal/cmd.exe中运行时是否收到错误消息?始终将完整的错误消息(回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。
表示鼠标悬停小部件
,而不是键盘上的“回车”键。对于“回车”键有
命令=
执行函数时不带参数,但绑定()
只带一个参数执行-因此开启器
必须获得一个带默认值的参数才能同时使用-即定义开启器(事件=无):
@iwasnother文本“不工作”是无用的信息(以及StackOverflow上最具注释性的文本)如果它不起作用,那么请描述到底什么不起作用,您期望的是什么,也许您期望的与您在问题中描述的不同。当前,当您选择“搜索”按钮时,键Enter
起作用-与原始代码相同。如果您仍在条目中时需要使用Enter
,则必须绑定到Entry
-名称。绑定(“”,开场白)
-请参阅新代码。
name.bind('<Return>', opener)
def opener(event=None):
import tkinter as tk
import webbrowser
def opener(event=None):
text = name.get().strip()
webbrowser.open("http://www.google.com/search?q="+text)
def clear():
name.delete(0, 'end')
root = tk.Tk()
ler=tk.Label(root, text="what do you want to search?", font=("Helvetica", 40))
ler.pack()
name = tk.Entry(root,width=100)
name.pack()
name.bind('<Return>', opener) # added
widget=tk.Button(root, text='search', command=opener, width=30, height=3)
widget.pack()
widget.bind('<Return>', opener)
wider = tk.Button(root, text='clear', command=clear, width=10, height=3)
wider.pack()
root.mainloop()