您好,我正在嘗試創建一個按鈕來使用 tkinter 獲取檔案目錄(我是相當新的)。我得到了彈出按鈕,我創建的功能有效。問題是當函式回傳值時,我得到的只是“.!button”或“.!button1”而不是檔案目錄。幫助將不勝感激
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
gui = Tk()
gui.geometry("100x100")
def getFolderPath():
return filedialog.askdirectory()
btnFind = ttk.Button(gui, text="Open Folder",command=getFolderPath)
btnFind.grid(row=0,column=2)
print(btnFind)
gui.mainloop()
uj5u.com熱心網友回復:
您正在列印按鈕變數...只需執行以下操作:
from tkinter import *
from tkinter import filedialog, ttk
gui = Tk()
gui.geometry("100x100")
def getFolderPath():
file = filedialog.askdirectory()
#do what you want with file
ttk.Button(gui, text="Open Folder",command=getFolderPath).grid(row=0,column=2)
gui.mainloop()
uj5u.com熱心網友回復:
該行print(btnFind)不列印系結到按鈕按下的函式的回傳值,它列印出按鈕本身的名稱。事實上,從函式回傳一些東西是沒有用的,因為你不能訪問回傳值。最好創建一個全域變數來存盤所選檔案夾,或者在這種情況下,直接從函式中列印它:
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
gui = Tk()
gui.geometry("100x100")
def getFolderPath():
print(filedialog.askdirectory())
btnFind = ttk.Button(gui, text="Open Folder",command=getFolderPath)
btnFind.grid(row=0,column=2)
gui.mainloop()
要將值存盤在全域變數中,請使用以下global關鍵字:
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
gui = Tk()
gui.geometry("100x100")
folder = None # Declare global variable first
def getFolderPath():
global folder
folder = filedialog.askdirectory()
btnFind = ttk.Button(gui, text="Open Folder",command=getFolderPath)
btnFind.grid(row=0,column=2)
gui.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/419064.html
標籤:
