附件显示了我想要实现的目标。
a)程序读入包含歌曲名称的csv文件(song1 - song5等)。
b)csv文件中的确切名称显示在文本小部件中,即小部件显示song1,song2,song 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))
有一些固定项目用于生成最终文件名和路径,这些文件和路径可能与其他文件无关,即“路径”,“后缀”,但它似乎按要求工作:)
答案 0 :(得分:-1)
在Qt中,您可以使用Pyqt或Pyside,您将填充QListWidget,其中每个项目都有标签文本,并且可以与文件关联。然后,您可以连接选择列表中项目的事件,即Clicked或doubleClicked,其中包含确定列表中选择了哪个列表项的函数,检索关联文件名,然后执行要使用文件名调用外部程序的命令作为输入。