С tkinter, метод .get () не работает с моим кодом - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь настроить окно tkinter с кнопками и метками и т. Д. Добавляемая кнопка предназначена для вызова функции, но она не работает должным образом.

Функция содержит строку х = entry1.get () Но это говорит о том, что entry1 не определена (хотя она определена ранее в программе). Я в замешательстве, когда видел эту работу на каналах YouTube.

Это не весь код (я сделал рутинный материал)

def game():
    x=entry1.get()
    label=Label(root,textvariable=x)
    label.grid(row=5,column=2)


def mainwindow():

    root=Tk()
    root.title("Typing Game")
    root.geometry("1920x1080")
    entry1=Entry(root)
    entry1.grid(row=2,column=4)
    button=Button(root,text="Hit this button when done",command=game)
    button.grid(row=1,column=4)

    root.mainloop()

mainwindow()

Предполагается, что X будет тем текстом, который вводит пользователь, но он просто говорит, что entry1 не определен, когда он пытается выполнить строку "x = entry1.get ()"

1 Ответ

0 голосов
/ 06 апреля 2019

Это правда, что entry1 не определен в этой точке. (это определено позже, в следующем коде). Поэтому вам нужно реализовать это по-другому. Это было бы одним из способов:

from tkinter import *
from functools import partial


def game(entry, label):
    label['text'] = entry.get()


def mainwindow():
    root = Tk()
    root.title("Typing Game")
    root.geometry("1920x1080")
    entry1 = Entry(root)
    entry1.grid(row=2, column=4)

    label = Label(root)
    label.grid(row=5, column=2)

    func = partial(game, entry1, label)
    button = Button(root, text="Hit this button when done", command=func)

    button.grid(row=1, column=4)

    root.mainloop()

mainwindow()

Итак, я создал метку (без значения) в функции mainwindow(). В функции game(entry, label) я просто устанавливаю значение метки. Обратите внимание, что я изменил функцию game, чтобы принимать 2 параметра, чтобы мы избавились от ошибки not defined at tha point. Кроме того, я использовал функцию partial, поэтому я могу назначить функцию с параметрами для команды кнопки.

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