Using Python with Tkinter, how can I make a button press do a different thing depending on which option is selected in the option menu?

岁酱吖の 提交于 2020-01-05 07:07:51

问题


I'm making a simple GUI, and my goal right now is for the user to select an option (kinematics or electricity) and then they would press the button to move on to a new screen for the one they selected. Currently, the button will do the same thing no matter which is selected, and I don't know how to change that. I'm using Python 3.6.1

from tkinter import *
import tkinter.font

bg_color1 = "#008B8B"

abc = Tk()

abc.title("Physics Problem Solver")
abc.rowconfigure(0, weight=1)
abc.columnconfigure(0, weight=1)

helvetica_bold_16 = tkinter.font.Font(
    root = abc, 
    family="Helvetica",
    weight="bold",
    size=16)

helvetica_bold_12 = tkinter.font.Font(
    root = abc,
    family="Helvetica",
    weight="bold",
    size=12)

app = Frame(abc,
    bd=6,
    relief="groove",
    bg=bg_color1)
app.rowconfigure(0, weight=1)
app.columnconfigure(0, weight=1)
app.grid(sticky=N+S+E+W)

msg1 = Message(app, 
    text = "Welcome to the Physics Problem Solver!",
    font=helvetica_bold_16,
    bg=bg_color1,
    fg="white",
    justify="center",
    relief="flat")
msg1.grid(pady=15)

def callback1():
    toplevel = Toplevel()
    toplevel.title("Window 2")
    toplevel.focus_set()

optionList = ("Kinematics",
    "Electricity")
om1v= StringVar()
om1v.set(optionList[0])

om1 = OptionMenu(app,
    om1v,
    "Kinematics",
    "Electricity")
om1.grid(pady=20)

b1= Button(app, 
    text="Go!",
    width=5,
    activebackground="#007070",
    activeforeground="#00ACAC",
    fg="black", 
    justify="center",
    font=helvetica_bold_12,
    relief="raised",
    command=callback1)
b1.grid(pady=20)

abc.mainloop()

回答1:


There's nothing special you need to do. In your callback you can get the value of the option menu and then do whatever is appropriate.

def callback1():
    if om1v.get() == "Kinematics":
        do_kinematics
    else:
        do_electricity()


来源:https://stackoverflow.com/questions/44376791/using-python-with-tkinter-how-can-i-make-a-button-press-do-a-different-thing-de

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!