避免访问相同的位置两次/单击两次,TkInter文本小部件

时间:2016-01-13 18:24:27

标签: python tkinter

我正在使用TkInter中的Text Widget功能来保存"行/段落并附加到列表中。

with open(fname1, "rt", encoding='latin1') as in_file:
    readable_file = in_file.read()

line_list = []


def grab_line(event):
    line_beginning = textPad.index("current linestart")
    line_ending = textPad.index("current lineend")
    line = textPad.get(line_beginning, line_ending)
    line_list.append(line)

root = Tk()
frame = Frame(root, width=750, height=1)
root.minsize(600,600)  # sets the size of the actual window
frame.pack()
text = Text(root)
text.insert(1.0, readable_file)
text.bind('<Button-1>', grab_line)
root.mainloop()

无论如何确保我没有选择两次相同的段落?也许有一个TkInter函数......

否则,人们会检查列表/词典内容并删除是否有重复项。

1 个答案:

答案 0 :(得分:0)

我要做的是在选定的文本块上添加标签。然后,您可以检查该标记的存在。您还可以使用标记突出显示代码,以便用户知道他们已经点击了它。

# this step is optional; you don't have to configure a tag
# before adding it to a range of text
text.tag_configure("already_selected", background="yellow")
...
text.tag_add("already_selected", line_beginning, line_ending)

要检查标记是否适用于他们点击的位置,请使用tag_names方法。例如:

if "already_selected" in text.tag_names("current"):
    ...