В приложении показано, чего я пытаюсь достичь.
а) Программа считывает CSV-файл, содержащий названия песен (song1 - song5 и т.д.).
б) точные названия из CSV-файла отображаются в текстовом виджете, т. е. в виджете отображается песня1, песня2, песня 3 и т. д.
c) пользователь щелкает одно из этих имен, и программа ищет в каталоге, который содержит эти точные имена, но с суффиксом mp3, то есть song1.mp3, song2.mp3 и т. д., и загружает медиаплеер vlc.
d) Названия песен, очевидно, отличаются в реальной жизни, но я хотел показать, что имена CSV, текстового виджета и проводника Windows являются общими.
Мне нужно понять, как это сделать.
1) Я понимаю загрузку csv и пометку текста, чтобы пользователь знал, куда нажимать
2) Я не понимаю процедуру, когда пользователь щелкает текст, т.е. как определить область в текстовом виджете, которую щелкнул пользователь, и как создать какую-то привязку для загрузки файла, суффикс mp3 должен быть также автоматически прикрепляется.
EDIT Добавлен рабочий код
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))
Есть несколько фиксированных элементов, которые используются для создания окончательного имени файла и пути, которые могут не иметь отношения к другим, а именно «путь», «суффикс», но, похоже, он работает по мере необходимости :)