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
循环的
之前。不,很遗憾不是下次请尝试查找问题中描述的问题的根本原因。不,很遗憾不是下次请尝试查找问题中描述的问题的根本原因。哇,我这是一个多么愚蠢的错误啊。谢谢你,我犯了一个多么愚蠢的错误。谢谢