Я пытаюсь получить кнопку tkinter
, чтобы получить ввод из записи и поместить его в переменную. функция, чтобы получить ввод, поместить его в переменную и напечатать его, не распознается кнопкой.
Я делаю простую викторину с графическим интерфейсом на Python и tkinter
. Я хочу сравнить пользовательский ввод с установленной переменной, чтобы увидеть, совпадают ли они. Я попытался поместить функцию вне класса, но все еще та же проблема. это мой первый раз с tkinter
, и большая часть моего кода взята. https://pythonprogramming.net/change-show-new-frame-tkinter/ Я не просто скопировал и вставил его код, я смотрел его видео, чтобы попытаться понять его.
class quizgame(tkinter.Tk):
def __init__(self, *args, **kwargs):
tkinter.Tk.__init__(self, *args, **kwargs)
container = tkinter.Frame(self)
container.pack(side = 'top', fill = 'both', expand = True)
container.grid_rowconfigure(0, weight = 1)
container.grid_columnconfigure(0, weight = 1)
self.frames = {}
for F in (StartPage, PageOne, PageTwo, PageThree,
PageFour, PageFive, PageSix, PageSeven,
PageEight, PageNine, PageTen, LastPage):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row = 0, column = 0, sticky = 'nsew')
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tkinter.Frame):
def __init__(self, parent, controller):
tkinter.Frame.__init__(self, parent)
label = tkinter.Label(self, text = 'start page')
label.pack(pady = 10, padx = 10)
button = tkinter.Button(self, text = 'start game',
command = lambda: controller.show_frame(PageOne))
button.pack()
class PageOne(tkinter.Frame):
def __init__(self, parent, controller):
tkinter.Frame.__init__(self, parent)
label = tkinter.Label(self, text = question1)
label.pack(pady = 10, padx = 10)
page1_entry = tkinter.Entry(self)
page1_entry.pack()
button1 = tkinter.Button(self, text = 'next question',
command = lambda: controller.show_frame(PageTwo))
button1.pack()
inputbtn = tkinter.Button(self, text = 'input', command = getInput())
inputbtn.pack()
def getInput():
user_input = page1_entry.get()
print(user_input)
app = quizgame()
app.mainloop
Я ожидаю, что вывод getInput()
напечатает все, что пользователь пишет в виджете ввода. Выход
NameError: name 'getInput' is not defined