that_guy_808
that_guy_808

Reputation: 45

Can't click button on tkinter

I am new to tkinter and I am having trouble with buttons on the python GUI. I create the buttons and the function behind it but I am unable to click the button. Can someone tell me what I am doing wrong? The UI comes up and I can see the button I just can't click it.

import tkinter as tk

from tkinter import filedialog, Text

import os


#main
root = tk.Tk()

def addApp():
    filename = filedialog.askopenfilename(initialir= "/", title= "Select File",
                                          filetypes = (("executables", "*.exe"),
                                                        ("all files", "*.*")))

canvas = tk.Canvas(root, height=700, width=700, bg="#33F9FF")

canvas.pack()

frame = tk.Frame(root, bg="white")
frame.place(relwidth=0.8, relheight=0.8, relx = 0.1, rely = 0.1)

openFile = tk.Button(root, text = "Open File", padx = 10, pady = 5, fg="black",
                     bg="#33F9FF", command="addApp")

openFile.pack()

runApps = tk.Button(root, text = "Run Apps", padx = 10, pady = 5, fg="black",
                    bg="#33F9FF")

runApps.pack()

root.mainloop()

Upvotes: 0

Views: 1718

Answers (2)

Delrius Euphoria
Delrius Euphoria

Reputation: 15098

Very, small mistake. You added command argument as a string and not a function

openFile = tk.Button(root, text = "Open File", padx = 10, pady = 5, fg="black",
                     bg="#33F9FF", command=addApp)

EDIT: there is a small typo at initialdir argument in openfiledialogbox

filename = filedialog.askopenfilename(initialdir= "/", title= "Select File",
                                          filetypes = (("executables", "*.exe"),
                                                        ("all files", "*.*")))

Upvotes: 5

Balaji Ambresh
Balaji Ambresh

Reputation: 5012

There's also one more mistake:

def addApp():
    filename = filedialog.askopenfilename(initialdir= '/', title= "Select File",
                                          filetypes = (("executables", "*.exe"),
                                                        ("all files", "*.*")))

Upvotes: 2

Related Questions