在下面的代码中,我正在寻找一种禁用文本小部件中的换行符的方法。我只想使用 Entry 小部件,但是,Entry 没有 UNDO 功能。
当我在文本小部件中按 Enter 时,会根据需要调用解析函数,但它也会转到下一行。
如有任何帮助,我们将不胜感激,谢谢。
#
from Tkinter import *
class Application(Frame):
def __init__(self):
self.master = Tk()
self.master.geometry("300x200")
Frame.__init__(self, self.master)
self.create_widgets()
def create_widgets(self):
self.master.bind('<Return>', self.parse)
self.grid()
w1 = Text(self, undo=True, height=1, width=26,wrap=NONE)
w1.grid(row=0, column=1, padx=5, pady=5, sticky=W)
self.submit = Button(self, text="Submit")
self.submit.bind('<Button-1>', self.parse)
self.submit.grid(row=0, column=2, sticky=E)
def parse(self, event):
print("You clicked?")
def start(self):
self.master.mainloop()
Application().start()
最佳答案
您可以在事件绑定(bind)末尾使用 return 'break'
来阻止 Tkinter 执行其默认操作:
def parse(self, event):
print("You clicked?")
return 'break'
您还需要将返回值专门绑定(bind)到条目:
w1 = Text(self, undo=True, height=1, width=26,wrap=NONE)
w1.grid(row=0, column=1, padx=5, pady=5, sticky=W)
w1.bind('<Return>', self.parse)
关于python tkinter 禁用文本小部件中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33177889/