MicasiO:
ここに私のコードは次のとおりです。
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
私が理解したように、私は何とか2つの関数の「フォルダ」の変数を渡す必要があります。私はすでに正直、私は本当に慣れていないだと、クラスを使用してのようなものの多くを試みました。
助けてください!
ベン:
機能を使用するとき、これは古典的な問題です。彼らは唯一のあなたはそれがプログラム全体に存在するように、変数をグローバル化されて何をする必要があるか、その関数内に存在するように、関数内のすべての変数はローカルです。これは言った変数を定義する前に、グローバル、その後、変数名言うことによって行われます。あなたの新しいコードは次のようになります。
global folder
folder = filedialog.askdirectory()