Tkinter 单击事件以突出显示文本

Tkinter 单击事件以突出显示文本,tkinter,highlight,python-3.7,Tkinter,Highlight,Python 3.7,如何创建允许用户通过左键单击和拖动突出显示文本的事件 我是编程新手。到目前为止,我已经尝试过简化它,只需在一个单词上单击一次鼠标左键,即可突出显示该单词,但我认为我的tag_bind()函数存在问题 import wx from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import tkinter as tk from tkinter import * r

如何创建允许用户通过左键单击和拖动突出显示文本的事件

我是编程新手。到目前为止,我已经尝试过简化它,只需在一个单词上单击一次鼠标左键,即可突出显示该单词,但我认为我的tag_bind()函数存在问题

import wx
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import tkinter as tk
from tkinter import *
root = Tk()

def text_click_callback(event):
    # an event to highlight a line when single click is done
    line_no = event.widget.index("@%s,%s linestart" % (event.x, 
event.y))
    #print(line_no)
    line_end = event.widget.index("%s lineend" % line_no)
    event.widget.tag_remove("highlight", 1.0, "end")
    event.widget.tag_add("highlight", line_no, line_end)
    event.widget.tag_configure("highlight", background="yellow")

File_object = open(r"Recall Tests.txt", "r")


m = PanedWindow(root)
m.pack(fill=BOTH, expand=1)


text1 = Text(m, height=90, width=90)
m.add(text1)
fileList = File_object.readlines()
text1.insert(INSERT, ''.join(fileList))
text1.config(state=DISABLED)

text1.tag_bind(text1, "highlight", text_click_callback)



text2 = Text(m, height=90, width=90, highlightcolor="black")
m.add(text2)
Label_1 = tk.Label(text2, text="NOTES",fg="red", font="Ariel 16 
underline").grid(row=4, column=0)
Label_2 = tk.Label(text2, text="PID:").grid(row=1)
e1 = tk.Entry(text2, width=90)
e1.grid(row=1, column=1)


root.mainloop()

这将在左侧打开一个文本文件,在右侧打开一个文本框。我希望用户能够通过左键单击并拖动鼠标来突出显示在文本文件上的句子。我试图先让单击功能工作,但当文件打开时,左键单击没有任何作用。

左键单击不工作的原因是您已将其绑定到标记,而当程序启动时,没有任何标记

如果希望单击在文本中的任何位置起作用,请使用
bind
而不是
tag\u bind

text1.bind("<B1>", text_click_callback)
text1.bind("<B1>", text_click_callback)
text1.bind(“,text\u单击\u回调)
如果希望在用户拖动鼠标时突出显示,则需要绑定到

text1.bind(“,text\u单击\u回调)