没问题,给你修改一下代码,让你输入的错误字符在界面中显示为红色:tkinter as tkroot = tk.Tk()v1 = tk.StringVar()v2 = tk.StringVar()def calculate_accuracy(event): typed_text = text.get("1.0", "end-1c") expected_text = "哈哈哈哈哈哈哈哈哈哈哈" correct_chars = sum(typed_char == expected_char for typed_char, expected_char in zip(typed_text, expected_text)) accuracy = correct_chars / len(expected_text) * 100 progress = len(typed_text) / len(expected_text) * 100 v1.set(f"准确率:{accuracy:.2f}%") v2.set(f"完成进度:{progress:.2f}%") # 清除之前的样式 text.tag_remove("error", "1.0", "end") # 标记错误字符为红色 for i, (typed_char, expected_char) in enumerate(zip(typed_text, expected_text), start=1): if typed_char != expected_char: text.tag_add("error", f"1.{i}", f"1.{i+1}") text.tag_config("error", foreground="red")text = tk.Text(root, width=40, height=10)text.pack()accuracy_label = tk.Label(root, textvariable=v1)accuracy_label.pack()progress_label = tk.Label(root, textvariable=v2)progress_label.pack()text.bind("", calculate_accuracy)root.mainloop()
在这个示例中,我们通过使用 `tag_add()` 和 `tag_config()` 方法为错误字符添加了一个名为 "error" 的标签,并设置其前景颜色为红色。在每次计算准确率后,我们都会先清除之前的错误标签样式,然后再进行新一轮的标记。这样,你输入的错误字符就会以红色显示出来。希望这个修改能满足你的需求。如果还有其他问题,请随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |