Home > other >  Trying to get a variable from a function using tkinter
Trying to get a variable from a function using tkinter

Time:05-26

I've been trying to get the printed output into a variable. Whenever I call the function it just simply repeats the button process. I tried to utilize global, but it doesn't seem to work.

Help pls thanks.

from tkinter import *
from tkinter import filedialog
import tkinter as tk

def openFile():
    filepath = filedialog.askopenfilename(title="Open for me")
    print(filepath)
    window.destroy()

window = tk.Tk()
window.title("Insert Excel File")
window.geometry("200x200")
button = Button(text="Open",command=openFile,height=3,width=10)
button.pack()
window.mainloop()

CodePudding user response:

print , outputs the string to stdout it does not store the value in a variable, you'll need to store it yourself.

Since you're using a callback you can't return the value. The best way to implement this is to use classes, the bad way is to use a global variable to store the result

I'm assuming you are not familiar with classes, so a possible solution would be

from tkinter import *
from tkinter import filedialog
import tkinter as tk

path = ""
def openFile():
    global path
    path = filedialog.askopenfilename(title="Open for me")
    window.destroy()

window = tk.Tk()
window.title("Insert Excel File")
window.geometry("200x200")
button = Button(text="Open",command=openFile,height=3,width=10)
button.pack()
window.mainloop()

# do something with path e.g. print
print(path)
  • Related