带有 If Else 语句的 Python Tkinter 按钮

问题描述 投票:0回答:1

我想将

Start_Button
与 2 个可能的功能绑定:

如果先单击

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?

有人知道

something
something_else
if-something
应该做什么吗?

python if-statement button tkinter
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.