我試圖將不同的單選按鈕鏈接到不同的文件夾。我設法打開一個文件夾,但現在所有的單選按鈕都鏈接到該文件夾。我明白,這是因爲他們有相同的使用第一個單選按鈕路徑的稱號,但我不知道如何改變它。我的問題是,如何將不同的單選按鈕鏈接到不同的文件夾? 另外,如何在同一時間從1個文件夾打開多個文件? 這裏是我的代碼:如何將不同的單選按鈕鏈接到不同的文件夾
from tkinter import*
from tkinter import filedialog
import tkinter.constants
class filedialogexample(tkinter.Frame):
def __init__(self, root):
tkinter.Frame.__init__(self, root)
self.favorite = StringVar()
tkinter.Radiobutton(self, text = "Browse 1", variable = self.favorite,
command = self.askopenfilename
).grid(row=2, column =0, columnspan = 2, sticky =W)
tkinter.Radiobutton(self, text = "Browse 2", variable = self.favorite,
command = self.askopenfilename
).grid(row=3, column =0, columnspan = 2, sticky =W)
tkinter.Radiobutton(self, text = "Browse 3", variable = self.favorite,
command = self.askopenfilename
).grid(row=4, column =0, columnspan = 2, sticky =W)
tkinter.Radiobutton(self, text = "Browse 4", variable = self.favorite,
command = self.askopenfilename
).grid(row=5, column =0, columnspan = 2, sticky =W)
self.dir_opt = options = {}
options['initialdir'] = 'C:\\Users\\kom01\\Documents\\Python Scripts'
def askopenfilename(self):
filename = filedialog.askopenfilename(**self.dir_opt)
if filename:
return open(filename, 'r')
def askdirectory(self, root):
return filedialog.askdirectory(**self.dir_opt)
if __name__=='__main__':
root = Tk()
filedialogexample(root).grid()
root.mainloop()
在此先感謝您的幫助!
您是否希望傳遞給'filedialog.askopenfilename'的'initialdir'對每個單選按鈕不同?無論如何,你應該給每個單選按鈕一個值,這樣變量'self.favorite'將包含對應於所選單選按鈕的值。另外,你的'askopenfilename'函數返回的文件不能在按鈕命令中使用。 –
感謝您的快速響應。是的,每個單選按鈕都有自己的'initialdir'。感謝提供有價值的提示,忘了那個。最後,我在某處找到了用'askopenfilename'返回文件的代碼,但它不起作用。我應該用什麼來代替? – Cucumber12
這取決於你想要對文件做什麼,你可以在函數內部完成它,或者你可以創建一個屬性來存儲文件名'self.myfile = filename'並將它用在其他函數中。 –