ScrolledText 小部件中的可点击文本 - 如何提取被点击的文本?

问题描述 投票:0回答:1

标题说明了一切,真的。我正在编写一个简单的地址簿作为较大程序的一部分,在 ScrolledText 小部件中显示详细信息。

self.contact_list = ScrolledText(
    self,
)
self.contact_list.grid(row=1, column=0, sticky='nsew')
self.contact_list.tag_bind('clickable', '<Double-1>', self.edit_entry)

每个人的条目显示在一行中,该行已被标记为“可点击”,后面是未标记的 .

entry = f'{name:<20} {phone:<15} {email:<30}'
self.contact_list.insert(tk.END, entry, 'clickable')
self.contact_list.insert(tk.END, '\n')

双击每个条目确实会调用 edit_entry 函数 - 通过在调用该函数时简单地打印一条消息来确认。这就是我戛然而止的地方。我无法弄清楚 - 或找出 - 如何提取刚刚双击的文本行。谷歌教授显然没有提供任何帮助(或者,也许,我只是不知道正确的搜索词)。

python tkinter
1个回答
0
投票

有一个特殊的标签

current
指的是光标单击的索引,因此您可以使用它来查找单击的行的开头和结尾:

s = self.contact_list.index('current linestart')
e = self.contact_list.index('current lineend')
line_content = self.contact_list.get(s, e)
© www.soinside.com 2019 - 2024. All rights reserved.