首页 > 解决方案 > 你如何在 Tkinter 中制作一个计算文本小部件中字符的程序?

问题描述

我正在尝试制作一个计算文本小部件中字符数的程序。但是,我遇到了一个错误,我该如何克服这个错误?

到目前为止,这是我的代码:

from tkinter import *

root = Tk()
root.geometry("600x600)

# Declare Find Chars Function
def declareFindChars():
    chars = text.get("1.0", END)
    printChars = len(chars)
    print(printChars)

# Initialize Find Char Function
def initFindChars():
    declareFindChars()
    text.after(1, initFindChars) # THIS SHOWS THE CHARACTERS EVERY ONE MILISECOND

text = Text(root, width=50, height=50).pack()

initFindChars()
root.mainloop()

所以我想每 1 毫秒打印一次文本小部件中有多少个字符。我如何通过错误?

标签: pythontkinterlogic

解决方案


from tkinter import *

root = Tk()
root.geometry("600x600")

text = Text(root, width=50, height=50)

# Declare Find Chars Function
def declareFindChars():
    chars = text.get("1.0", END)
    printChars = len(chars)
    print(printChars)

# Initialize Find Char Function
def initFindChars():
    declareFindChars()
    text.after(1, initFindChars) # THIS SHOWS THE CHARACTERS EVERY ONE MILISECOND

text.pack()

initFindChars()
root.mainloop()

这应该有效。我在 PyCharm 中进行了测试。它返回 NoneType 因为 Text() 对象在函数之前没有初始化,因此它是 None/Null。


推荐阅读