Кнопка Python Tkinter с операторами If Else - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу связать 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?

Кто-нибудь знает, что something, something_else и if-something должны делать?

1 Ответ

0 голосов
/ 26 апреля 2018

Следующий код отслеживает то, что они нажали:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...