Python - изменения радиокнопки Tkinter не регистрируются - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь использовать tkinter для создания базовой c программы. Это не захватывает мой радиокнопочный ввод. Должен отображаться экран с заголовком и следующей кнопкой. Если следующая кнопка нажата, она должна вызвать другое окно с двумя переключателями и следующей кнопкой. Если нажать эту кнопку, появится третий экран с сообщением о том, что вы выбрали. В настоящее время он говорит вам, что вы ничего не выбрали, несмотря ни на что

from tkinter import *
from tkinter import ttk
from functools import partial

def forward():
    root2=Tk()
    mainframe2=ttk.Frame(root2)
    mainframe2.grid(row=0,column=0)
    pick=StringVar()
    ttk.Radiobutton(mainframe2, text='A', variable=pick, value='A').grid(row=1,column=1)
    ttk.Radiobutton(mainframe2, text='B', variable=pick, value='B').grid(row=2,column=1)

    #What I have tried
    #ttk.Button(mainframe2, text='Next',command=lambda: advance(pick)).grid(row=3,column=1)
    ttk.Button(mainframe2, text='Next',command=partial(advance,pick)).grid(row=3,column=1)
    #ttk.Button(mainframe2, text='Next',command=advance).grid(row=3,column=1)#if you this and def 
advance(args) it says pick is undefined

    root2.mainloop()
def advance(pick):
    choice=pick.get()
    screen3=Tk()
    mainframe3=ttk.Frame(screen3)
    mainframe3.grid(row=0,column=0)
    result=str('You Chose '+choice)
    ttk.Label(mainframe3, text=result).grid(row=1,column=1)
    screen3.mainloop()

root = Tk()
mainframe=ttk.Frame(root) #create a screen
mainframe.grid(row=0,column=0)
ttk.Label(mainframe, text='Welcome to my Broken Program').grid(row=1,column=1)
ttk.Button(mainframe, text='Next',command=forward).grid(row=2,column=1) 
root.mainloop()


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...