本人Python初学自学,跑MacOS。
我正在 tkinter 中使用文本解析器 GUI 制作一个程序,您可以在 Entry
小部件中键入命令,然后点击 Button
小部件,这会触发我的 parse()
函数等,将结果打印到 Text
小部件,文本冒险风格。
> 绕过按钮
我不能让你那样做,戴夫。
我试图找到一种方法来摆脱每次用户发出命令时将鼠标 Button
的需要,但这比我想象的要难。
我猜正确的代码看起来像 self.bind('<Return>', self.parse())
?但我什至不知道把它放在哪里。 root
, __init__
, parse()
和 create_widgets()
需要明确的是,任何人都应该在 prog 中按回车键的唯一原因是触发 parse()
,因此不需要特别支持 Entry
小部件。它在哪里工作都很好。
回复7stud,基本格式:
from tkinter import *
import tkinter.font, random, re
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master, ...)
self.grid()
self.create_widgets()
self.start()
def parse(self):
...
def create_widgets(self):
...
self.submit = Button(self, text= "Submit Command.", command= self.parse, ...)
self.submit.grid(...)
root = Tk()
root.bind('<Return>', self.parse)
app = Application(root)
root.mainloop()
原文由 Ghosty 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试运行以下程序。您只需确保在按下 Return 时您的窗口具有焦点——为确保它确实如此,请先单击该按钮几次,直到您看到一些输出,然后不要单击其他任何地方,单击 Return。
然后,当使
button click
和hitting Return
调用相同的函数时,您只需稍微调整一下,因为命令函数需要是一个不带参数的函数,而绑定函数需要是一个接受一个参数(事件对象)的函数:或者,您可以放弃使用按钮的命令参数,而是使用 bind() 将 onclick 函数附加到按钮,这意味着该函数需要采用一个参数——就像 Return 一样:
这是在课堂设置中: