python tkinter 禁用文本小部件中的换行符

标签 python python-2.7 tkinter

在下面的代码中,我正在寻找一种禁用文本小部件中的换行符的方法。我只想使用 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/

相关文章:

Python 列表、csv、去重

python - 错误 - "SQLite DateTime type only accepts Python " "datetime and date objects as input."

python - 使用用户 tkinter 输入作为 Matplotlib 的坐标绘制一条线

python - 列表理解中带有浮点格式的 f 字符串

python - 在 Python/Flask for d3.js 中异步加载数据

python - vmprof : Example config. ini 文件 : configparser. MissingSectionHeaderError

python - 带有多行标签的 Tkinter 表单?

python - 如何获取两个单词之间列表的子列表

python - 当我运行脚本时,发送电子邮件不起作用,但逐行发送电子邮件却有效,为什么?

Python-Tkinter,for循环创建图片按钮