如何在tkinter文本框中获取段落的开始和结束位置?

时间:2020-10-22 11:32:48

标签: python tkinter textbox tags paragraph

我已经使用 tkinter.Text 创建了一个文本编辑器,但是我遇到了一个问题,即程序检测到用户当前所在的段落,即它检测到当前段落所在的开始和结束索引。插入点是。

我还搜索了先前提出的问题,但在tkinter.Text小部件中找不到任何与段落检测有关的内容(网络上提到的bcoz解决方案似乎仅适用于单个字符串,而不适用于tkinter中的line.column。文本小部件。)

因此,如果有人可以详细说明如何在tkinter.Text小部件中获取图形开始和结束的索引,这将非常有帮助。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我很快写了一些对您有帮助的代码。如果不清楚,请询问。

import tkinter as tk

 
root = tk.Tk()
root.geometry("600x600")
 
tb = tk.Text(root, width=600, height=600)
tb.pack()
 
tags = ["red", "blue", "green", "yellow"]
now_tag = 0
tb.tag_config("red", foreground="red", background="black")
tb.tag_config("blue", foreground="blue", background="black")
tb.tag_config("green", foreground="green", background="black")
tb.tag_config("yellow", foreground="yellow", background="black")
 
 
def update_tb(event=None):
    global now_tag
 
    tb.tag_add(tags[now_tag], "{0} linestart".format(tk.INSERT), "{0} lineend".format(tk.INSERT))
    now_tag = 1 + now_tag if len(tags) - 1 > now_tag else 0
 
 
root.bind('<Return>', update_tb)
root.bind('<Control_L>', update_tb)
root.bind('<Shift_L>', update_tb)
root.mainloop()