[英]How do I pass a variable between two functions in tkinter python?
這是我的代碼:
import os
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
def click():
folder = filedialog.askdirectory()
button["text"] = folder
def click2():
folder2 = filedialog.askdirectory()
button1["text"] = folder2
def click3():
list = os.listdir(folder)
print(list)
entry = tk.Entry(root)
entry.grid(row=0, column=3)
label = tk.Label(root, text="Search from:")
label.grid(row=0, column=0)
label3 = tk.Label(root, text="Search:")
label3.grid(row=0, column=2)
label2 = tk.Label(root, text="Sort to:")
label2.grid(row=1, column = 0)
button = tk.Button(root, text="( ͡° ͜ʖ ͡°)", command=click, font=("TkDefaultFont", 12))
button.grid(row=0, column=1)
button1 = tk.Button(root, text="( ͡° ͜ʖ ͡°)", command=click2, font=("TkDefaultFont", 12))
button1.grid(row=1, column=1)
confirm = tk.Button(root, text="Confirm", command=click3, font=("TkDefaultFont", 12))
confirm.grid(row=2, column=1)
root.mainloop()
我收到一個錯誤: NameError: name 'folder' is not defined
據我了解,我需要以某種方式在兩個函數之間傳遞“文件夾”變量。 我已經嘗試了很多東西,比如使用類,老實說,我不是很熟悉。
請幫忙!
這是使用函數時的經典問題。 在一個函數中,所有變量都是局部變量,因此它們只存在於該函數中,您需要做的是將變量全局化,使其存在於整個程序中。 這是通過在定義所述變量之前先說 global 和變量名來完成的。 您的新代碼應如下所示。
global folder
folder = filedialog.askdirectory()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.