is there a way to make the same button do different actions depending on what the user chooses from drop down menu?
I tried this for example, but it doesn't work:
from tkinter import *
from tkinter import ttk
root = Tk()
root.geometry("400x200")
def say_hello():
hello_label = Label(root, text= "Hello")
hello_label.grid(row=1, column=0, padx=10, pady=10)
def say_goodbye():
bye_label = Label(root, text= "Goodbye")
bye_label.grid(row=1, column=0, padx=10, pady=10)
do = ""
drop_table = ttk.Combobox(root, values=["Choose Action..", "Say Hello","Say Goodbye"])
drop_table.current(0)
drop_table.grid(row=0, column=0, padx=10, pady=10)
selected = drop_table.get()
if selected == "Say Hello":
do = say_hello
if selected == "Say Goodbye":
do = say_goodbye
button = Button(root, text= "Choose", command = do)
button.grid(row=0, column=2, padx=10, pady=10)
root.mainloop()
CodePudding user response:
You would need to link your button to a function and include your if statements in the function. Then use your function as the command for your button like this.
from tkinter import *
from tkinter import ttk
root = Tk()
root.geometry("400x200")
def say_hello():
hello_label = Label(root, text= "Hello")
hello_label.grid(row=1, column=0, padx=10, pady=10)
def say_goodbye():
bye_label = Label(root, text= "Goodbye")
bye_label.grid(row=1, column=0, padx=10, pady=10)
do = ""
drop_table = ttk.Combobox(root, values=["Choose Action..", "Say Hello","Say Goodbye"])
drop_table.current(0)
drop_table.grid(row=0, column=0, padx=10, pady=10)
def action():
selected = drop_table.get()
if selected == "Say Hello":
say_hello()
if selected == "Say Goodbye":
say_goodbye()
button = Button(root, text= "Choose", command= action)
button.grid(row=0, column=2, padx=10, pady=10)
root.mainloop()