#python version 2.7.11
import os
from Tkinter import *
fileName = "Nothing" #fileName is required so that the callback function can link the current file name with button click
def callback(event):
#os.startfile() works only on windows machine
os.startfile(fileName) #opens the fileName with its default application (in my case a pdf viewer)
def makeLink(file):
global fileName
fileName = file
link = Label(textbox, text=fileName, fg="blue", cursor="hand2")
link.pack()
link.bind("<Button-1>", callback)
oldDir = os.getcwd()
newDir = os.chdir("pdf folder") #pdf folder contains some pdf files
root = Tk()
textbox = Text(root)
textbox.pack()
allFiles = os.listdir(os.getcwd()) #makes a list of files present in current directory
for file in allFiles:
makeLink(file)
root.mainloop()
os.chdir(oldDir)
私は、いくつかのpdfファイルを含むフォルダ(上のコードはpdfフォルダ)のファイルを選択し、 GUIウィンドウ。リンク上でこのボタンを押すと、デフォルトのアプリケーションで開く必要があります(pdfファイルはデフォルトのPDFビューアで開く必要があります)。私のコードは、リンクとして "pdfフォルダ"にあるすべてのファイルのファイル名を表示しています。しかし、すべてのリンクをクリックすると、フォルダの最後のファイルが開きます。誰かがコードを修正して、すべてのリンクがそれ自身のファイルを開くようにすることはできますか?私はどこからでも検索しましたが、このトピックについては何も見つかりませんでした。PythonでTkinter GUIへのリンクとして複数のファイル名をつけてデフォルトのアプリケーションで開く
私はコンボボックスについてとても感謝してくれました。それは正常に働いた。 – Syler