带有If Else语句的Python Tkinter Button

时间:2018-04-26 19:16:42

标签: python if-statement button tkinter

我想将Start_Button与两个可能的函数绑定:

如果点击Choice_1_Button,然后点击Start_Button,则Start_Button应致电foo1。但是,当用户点击Choice_2_Button时,相同的Start Button应该调用foo2

以下是我目前的代码:

from tkinter import *
root=Tk()
Choice_1_Button=Button(root, text='Choice 1', command=something) #what should it do?
Choice_2_Button=Button(root, text='Choice 2', command=something_else)
Start_Button=Button(root, text='Start', command=if_something) #and what about this?

有谁知道somethingsomething_elseif-something应该做什么?

1 个答案:

答案 0 :(得分:0)

以下代码会跟踪他们按下的内容:

choice=None
def choice1():
    global choice
    choice='Choice 1'
def choice2():
    global choice
    choice='Choice 2'
def start():
    global choice
    if choice=='Choice 1':
        foo1()
    elif choice=='Choice 2':
        foo2()
    else:
        #do something else since they didn't press either

choice1作为Choice_1_Button的命令,choice2作为Choice_2_Button的命令,start作为Start_Button的命令。

如果您想使用单选按钮,它会更容易:

def start(choice):
    if choice=='Choice 1':
        foo1()
    elif choice=='Choice 2':
        foo2()
    else:
        #do something else since they didn't press either
var=StringVar(root)
var.set(None)
Radiobutton(root, text='Choice 1', value='Choice 1', variable=var).pack()
Radiobutton(root, text='Choice 2', value='Choice 2', variable=var).pack()
Button(self.frame, text='Start', command=lambda: start(var.get())).pack()