Неверный синтаксис в виджете геометрии tkinter - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь создать GUI для развлечения. Цель кода - взять то, что вы ввели в « виджет ввода », и распечатать его в терминале с помощью команды print () при нажатии кнопки отправки.

Два вопроса.

Один: я продолжаю получать ошибку " Неверный синтаксис " в коде как root .geometry () и root .mainl oop ()

root.geometry("300x300")

root.mainloop()

два: есть ли более эффективный способ получения текста из виджета ввода tkinter и его сохранения в переменной. я хотел бы иметь возможность хранить данные из нескольких виджетов ввода для нескольких переменных, и как я могу это сделать.

Вот мой полный код.

from tkinter import *

root = Tk()

def get_input():
    val = e1.get("1.0", "end-1-c")
    print(val)

lbl1 = Label(root, text = "Enter your name:").grid(row= "0", column= "0")
e1 = Entry(root, borderwidth = 5, width = 20).grid(row = "0", column = "1")
sbut = Button(root, text = "submit", command = get_input.grid(row= "1", column = "0")

root.geometry("300x300")

root.mainloop()

Я использовал https://www.youtube.com/watch?v=FueIPFqRyyY&t=85s для кода для сохранения данных виджета ввода в переменную

Спасибо за любую помощь ?

1 Ответ

2 голосов
/ 14 февраля 2020

Вы не должны определять виджет и .grid() его в одной строке. У вас также был Invalid syntax, потому что вы забыли ) в строке sbut = Button(....grid(row= "1", column = "0"))

Вы можете попробовать это:

from tkinter import *

root = Tk()

def get_input():
    val = e1.get()
    e1.delete("0", "end")
    print(val)

lbl1 = Label(root, text = "Enter your name:")
lbl1.grid(row= "0", column= "0")
e1 = Entry(root, borderwidth = 5, width = 20)
e1.grid(row = "0", column = "1")
sbut = Button(root, text = "submit", command = get_input)
sbut.grid(row= "1", column = "0")

root.geometry("300x300")

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