Python 如何删除tkinter文本小部件的第一个字符
您好,我正在努力解决Python 如何删除tkinter文本小部件的第一个字符,python,tkinter,Python,Tkinter,您好,我正在努力解决tkinter。我只想删除文本小部件的第一个字符,例如单击按钮。我已经看到了[Bryan Oakley在这里的答案][1],但不幸的是,它对我不起作用。 就像他说的,我试过这样: text.delete(“1.0”) 但就像我说的,它不起作用。我也没有得到任何错误。它根本不起作用 from tkinter import * import time class TipManager: def __init__(self): self.root = T
tkinter
。我只想删除文本小部件的第一个字符,例如单击按钮。我已经看到了[Bryan Oakley在这里的答案][1],但不幸的是,它对我不起作用。
就像他说的,我试过这样:
text.delete(“1.0”)
但就像我说的,它不起作用。我也没有得到任何错误。它根本不起作用
from tkinter import *
import time
class TipManager:
def __init__(self):
self.root = Tk()
self.root.attributes("-fullscreen", True)
self.root.bind("<KeyPress>", self.click)
self.clicks = 0
self.chars = []
self.cps = 0
self.start = time.time()
self.average()
self.text = Text(self.root,tabs=2,font=("Arial", 30))
self.text.grid(row=0, column=0)
self.root.mainloop()
def click(self,e):
if e.char.isalpha() or e.char == " ":
self.chars.append(e.char)
self.clicks += 1
if len(self.chars) > 15:
self.text.delete("1.0")
self.text.configure(state="normal")
self.text.insert(END, e.char)
self.text.configure(state="disabled")
if e.char == "\x7f":
if not len(self.chars) == 0:
self.text.configure(state="normal")
self.text.delete("end-2c")
self.text.configure(state="disabled")
del self.chars[-1]
def average(self):
self.cps = self.clicks
print(f"Your average typing speed was {self.cps} c/s")
self.clicks = 0
self.root.after(1000, self.average)
tipp_10 = TipManager()
从tkinter导入*
导入时间
类TipManager:
定义初始化(自):
self.root=Tk()
self.root.attributes(“-fullscreen”,True)
self.root.bind(“,self.click)
self.clicks=0
self.chars=[]
self.cps=0
self.start=time.time()
self.average()
self.text=text(self.root,制表符=2,字体=(“Arial”,30))
self.text.grid(行=0,列=0)
self.root.mainloop()
def点击(自我,e):
如果e.char.isalpha()或e.char==“”:
self.chars.append(e.char)
self.clicks+=1
如果len(自身字符)>15:
self.text.delete(“1.0”)
self.text.configure(state=“normal”)
self.text.insert(END,e.char)
self.text.configure(state=“disabled”)
如果e.char==“\x7f”:
如果不是len(self.chars)==0:
self.text.configure(state=“normal”)
self.text.delete(“end-2c”)
self.text.configure(state=“disabled”)
del self.chars[-1]
def平均值(自身):
self.cps=self.clicks
打印(f“您的平均打字速度为{self.cps}c/s”)
self.clicks=0
self.root.after(1000,self.average)
tipp_10=TipManager()
这是我的全部代码
[1] :.在插入/删除文本框之前,请确保文本框已启用。因此,将
self.text.configure(state=“normal”)
放在这一行之前:
if len(self.chars) > 15:
self.text.delete("1.0")
在插入/删除文本框之前,请确保文本框已启用。因此,将
self.text.configure(state=“normal”)
放在这一行之前:
if len(self.chars) > 15:
self.text.delete("1.0")
更改:
如果len(self.chars)>15:
self.text.delete(“1.0”)
self.text.configure(state=“normal”)
self.text.insert(END,e.char)
self.text.configure(state=“disabled”)
致:
self.text.configure(state=“normal”)
如果len(自身字符)>15:
self.text.delete(“1.0”)
self.text.insert(END,e.char)
self.text.configure(state=“disabled”)
当您时,
的状态必须是“正常”
。插入/。从中删除。更改:
如果len(self.chars)>15:
self.text.delete(“1.0”)
self.text.configure(state=“normal”)
self.text.insert(END,e.char)
self.text.configure(state=“disabled”)
致:
self.text.configure(state=“normal”)
如果len(自身字符)>15:
self.text.delete(“1.0”)
self.text.insert(END,e.char)
self.text.configure(state=“disabled”)
当您时,
的状态必须是“正常”
。插入/。从中删除。请共享您的代码。请发布一篇文章。我们更喜欢可以复制粘贴然后运行的东西。谢谢你的帮助advices@TheLizzard是的,我试过了,但不起作用either@PucciLaCanton问题是当您试图删除字符时,tkinter.Text
被禁用了“
。将self.text.configure(state=“normal”)
移动到for
循环之前。请共享您的代码。请发布一篇文章。我们更喜欢可以复制粘贴然后运行的东西。谢谢你的帮助advices@TheLizzard是的,我试过了,但不起作用either@PucciLaCanton问题是当您试图删除字符时,tkinter.Text
被禁用了“
。将self.text.configure(state=“normal”)
移动到for
循环的之前。不,很遗憾不是下次请尝试查找问题中描述的问题的根本原因。不,很遗憾不是下次请尝试查找问题中描述的问题的根本原因。哇,我这是一个多么愚蠢的错误啊。谢谢你,我犯了一个多么愚蠢的错误。谢谢