【发布时间】:2016-06-30 23:13:20
【问题描述】:
附件显示了我想要实现的目标。
a) 程序读取包含歌曲名称的 csv 文件(歌曲 1 - 歌曲 5 等)。
b) csv 文件中的确切名称显示在文本小部件中,即小部件显示歌曲 1、歌曲 2、歌曲 3 等
c) 用户单击其中一个名称,程序会在包含这些确切名称但带有 mp3 后缀(即 song1.mp3、song2.mp3 等)的目录中查找并加载 vlc 媒体播放器。
d) 歌曲名称在现实生活中明显不同,但我想表明 CSV、文本小部件和 Windows 资源管理器名称都很常见。
我需要了解如何做到这一点。
1) 我了解加载 csv 并标记文本,因此用户知道在哪里点击
2) 我不明白用户单击文本时的过程,即如何计算出用户单击的文本小部件中的区域以及如何创建某种绑定来加载文件,mp3 后缀会也需要自动附加。
编辑添加了工作代码
def viewFile(event):
path = "c:\\pdf"
suffix= ".pdf"
self.outputbox.tag_remove("dwg", "1.0", "end")
self.outputbox.tag_configure("dwg", background="red")
self.outputbox.tag_add("dwg", "insert linestart", "insert lineend")
getdwg=self.outputbox.get("insert linestart", "insert linestart+10c")
getdwg=getdwg.strip()
linkname = (getdwg + suffix)
self.outputbox.tag_bind("dwg", "<ButtonRelease-1>", lambda event, filename=path + '/' + linkname: subprocess.run(filename, shell=True))
有几个固定项目用于生成最终文件名和路径,它们可能与其他项目无关,即“路径”、“后缀”,但它似乎可以按要求工作:)
【问题讨论】:
标签: python-3.x text tkinter widget tagging