如何在 tkinter 文本小部件中为文本的当前长度制作多个标签

我想在 tkinter Text 小部件中为文本的当前长度制作标签,但我的代码在做最后一个文本框,所以我必须做什么?

from tkinter import *

win=Tk()
win.geometry("700x350")

text_all=[]
label_all=[]
for i in range(1,11):
    text=Text(win, width=20, height=1, font=('Calibri 14'))
    text.grid(row=i-1,column=0)
    text_all.append(text)
    label=Label(win, text="Total Characters", justify=CENTER, font=('11'))
    label.grid(row=i-1, column=1)
    label_all.append(label)

for i in range(1,11):
    def update(event):
        label_all[i-1].config(text="Total Characters: "+str(len(text_all[i-1].get("1.0", 'end-1c'))))
    
    text_all[i-1].bind('<KeyPress>', update)
    text_all[i-1].bind('<KeyRelease>', update)

win.mainloop()
acw1668

update()被执行时,的值i将是最后分配的值后的for循环中,即,10。

您需要捕获所需的值i并将此值传递给update()using 参数默认值:

for i in range(1, 11):
    def update(event, i=i):
        label_all[i-1].config(text="Total Characters: "+str(len(text_all[i-1].get("1.0", 'end-1c'))))

    ...

您也可以将两个 for 循环合并为一个:

for i in range(1,11):
    def update(event, i=i):
        label_all[i-1].config(text="Total Characters: "+str(len(text_all[i-1].get("1.0", 'end-1c'))))

    text=Text(win, width=20, height=1, font=('Calibri 14'))
    text.grid(row=i-1,column=0)
    text.bind('<KeyPress>', update)
    text.bind('<KeyRelease>', update)
    text_all.append(text)

    label=Label(win, text="Total Characters", justify=CENTER, font=('11'))
    label.grid(row=i-1, column=1)
    label_all.append(label)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Tkinter文本小部件中获取文本的当前长度

如何在Tkinter文本小部件中创建“加载轮”?

如何在 tkinter 的文本小部件中設置值?

如何在标签小部件python tkinter中更改文本大小

如何在用户单击按钮后插入新文本之前测试 Tkinter 文本框小部件的当前文本?

Tkinter:如何制作一个圆角文本小部件?

在 Tkinter 中为不同行中的多个标签创建不同长度的文本框小部件

如何在python tkinter中制作输入小部件在按下回车键时给我里面的文本

如何在Tkinter文本小部件中选择单词或字母?

我如何在 tkinter 中获取标签的当前宽度

Tkinter(python3)如何在文本小部件中垂直插入文本?

如何在Tkinter文本小部件中显示文本和变量

Tkinter,Python:如何保存在“输入”小部件中输入的文本?如何移动标签?

如何从Tkinter文本小部件获取输入?

如何从Tkinter文本小部件获取输入?

如何从 tkinter 中的函数访问 Entry 小部件内的文本?

如何更改条目小部件 tkinter 中的文本

如何从索引中获取 tkinter 文本小部件坐标

Tkinter:如何使用缩放小部件的值来更改标签小部件的文本?

如何将多个按钮链接到 tkinter 中的一个文本小部件?

如何使用多个小部件的 1 个函数从 Tkinter/Python 的弹出菜单中复制文本?

如何在文本小部件 python tkinter 中從樹視圖打開文件

如何在 Tkinter Text 小部件中限制仅在指定时间内输入文本

如何在tkinter Entry小部件中插入临时文本?

Python Tkinter:如何在<Destroy>事件回调中从ScrolledText小部件获取文本?

如何在Tkinter文本小部件中配置默认的双击行为?

Tkinter:如何在画布中设置文本小部件的相对宽度?

如何在tkinter的文本小部件中停止复制,粘贴和退格?

如何在tkinter中找到当前小部件的大小?