如何提取ScrolledText组件中被双击的可点击文本内容?
解决ScrolledText双击提取行文本的问题
在你的edit_entry函数中,利用Tkinter的索引定位功能就能轻松提取双击行的文本,具体实现如下:
- 获取双击位置的行范围:通过
"current linestart"和"current lineend"索引,分别定位到双击位置所在行的开头和结尾(包含换行符) - 提取并处理文本:用
get方法获取该行内容,再去除末尾的换行符
完整的edit_entry函数代码:
def edit_entry(self, event): # 定位双击行的起始和结束位置 line_start = self.contact_list.index("current linestart") line_end = self.contact_list.index("current lineend") # 提取行文本并移除换行符 selected_entry = self.contact_list.get(line_start, line_end).strip('\n') # 拆分联系人信息(根据你格式化的规则) name, phone, email = selected_entry.split(maxsplit=2) # 这里添加你的编辑逻辑,比如弹窗修改信息等 print(f"要编辑的联系人:姓名={name}, 电话={phone}, 邮箱={email}")
说明:因为你每个联系人条目后单独插入了未标记的换行符,lineend会精准定位到该行的换行位置,strip('\n')能确保得到的是纯联系人信息行。拆分时用maxsplit=2是避免邮箱或姓名里有空格的情况(如果你的格式里姓名、电话、邮箱本身不含空格,直接split()也可以)。
内容的提问来源于stack exchange,提问作者David Shaw
相关产品推荐
相关产品推荐

