我刚开始创建一个简单的文本编辑器。我已经将某些功能绑定到某些按键,现在我尝试添加一个按下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()
我遇到的问题是,在按删除键删除输入的最后一个字符时,没有删除任何内容。任何帮助赞赏。附:我已经尝试添加一个保存文件功能来将文本保存到文件中,但是如果有人也可以在那里帮助它也不起作用,我将再次感激:)
答案 0 :(得分:0)
我没有尝试正确运行您的代码,因为我已经没时间了。但是,首先,您不应在同一pack
中使用place
和Toplevel
几何管理器,您应该只使用一个。其次,在savefile
函数中,您没有打开文件,因此您的file
变量只是一个字符串。你应该使用file = open(file)
之类的东西。