使用绑定函数

时间:2017-04-03 20:38:25

标签: python-3.x tkinter

我刚开始创建一个简单的文本编辑器。我已经将某些功能绑定到某些按键,现在我尝试添加一个按下Return delete操作的功能。目的是删除输入到文本小部件中的最后一个字符。这是我的代码:

from tkinter import *
from tkinter import filedialog
import os

root = Tk()
root.geometry('{}x{}'.format(500, 500))

def addchar(event):
    w.insert(END, event.char)

def deletechar(event):
    current = w.get()
    new = current[:-1]
    w.delete(0,END)
    w.insert(END, new)

def savefile(event):
    file = filedialog.asksaveasfilename(defaultextension=".txt")
    if file is None:
        return
    text2save = str(w.get())
    file.append(data)
    file.close()


 w = Entry(root, bd=1)
 w.pack()
 w.place(x=0, y=0, width=500)
 root.bind("<Key>", addchar)
 root.bind("<BackSpace>", deletechar)
 root.bind("<Control-s>", savefile)
 root.bind("<Return>", newline)

 root.mainloop()

我遇到的问题是,在按删除键删除输入的最后一个字符时,没有删除任何内容。任何帮助赞赏。附:我已经尝试添加一个保存文件功能来将文本保存到文件中,但是如果有人也可以在那里帮助它也不起作用,我将再次感激:)

1 个答案:

答案 0 :(得分:0)

我没有尝试正确运行您的代码,因为我已经没时间了。但是,首先,您不应在同一pack中使用placeToplevel几何管理器,您应该只使用一个。其次,在savefile函数中,您没有打开文件,因此您的file变量只是一个字符串。你应该使用file = open(file)之类的东西。