เอกสารแนบนี้แสดงสิ่งที่ฉันพยายามทำให้สำเร็จ
ก) โปรแกรมอ่านเป็นไฟล์ csv ที่มีชื่อเพลง (song1 - song5 ฯลฯ)
b) ชื่อที่แน่นอนจากการแสดงไฟล์ CSV ในวิดเจ็ตข้อความ เช่น วิดเจ็ตแสดง song1, song2, เพลง 3 เป็นต้น
c) ผู้ใช้คลิกหนึ่งในชื่อเหล่านั้น และโปรแกรมจะค้นหาในไดเรกทอรีที่มีชื่อที่แน่นอนเหล่านั้น แต่มีคำต่อท้าย mp3 เช่น song1.mp3, song2.mp3 ฯลฯ และโหลด vlc media player
ง) ชื่อเพลงแตกต่างอย่างเห็นได้ชัดในชีวิตจริง แต่ฉันต้องการแสดงให้เห็นว่าชื่อ CSV วิดเจ็ตข้อความ และ windows explorer ล้วนเป็นเรื่องธรรมดา
ฉันต้องเข้าใจว่าจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร
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))
มีรายการคงที่สองสามรายการที่ใช้ในการสร้างชื่อไฟล์และเส้นทางสุดท้ายซึ่งอาจไม่เกี่ยวข้องกับรายการอื่นเช่น 'เส้นทาง', 'ส่วนต่อท้าย' แต่ดูเหมือนว่าจะทำงานได้ตามต้องการ :)