Найти - Пользователи
Полная версия: Tkinter и его Label
Начало » Центр помощи » Tkinter и его Label
1 2
EvolJi
Смотрите, я хочу сделать код, который берёт данные с параметра Label (ввод текста в переменную) и выводит их совмещенно. Если бы я писал в print, то код можно писать так
print(“Привет, ” + name + “ ” + surname “!”) и результат выводился правильно в консоле
, но если их выводить через Label, то выводится то, что в скобочках, а остальное не берёт. Мне нужно , чтобы Label и его параметр text брал всю команду. Ошибка консоли на втором скрине.
viegg
Для того что бы получить данные из формы используй name.get(),age.get() и тд. Иначе ты пытаешься добавить в строку свой виджет, из-за этого и ошибка.
EvolJi
viegg
Для того что бы получить данные из формы используй name.get(),age.get() и тд. Иначе ты пытаешься добавить в строку свой виджет, из-за этого и ошибка.
Так если я его получу, то всё равно в параметре Label , при text не получится, тк графа text=“” берёт только то, что в скобочках, а мне нужно ещё с переменными выводить текст.
viegg
EvolJi
Попробуй и у тебя все получится
viegg
 root = Tk()
def go():
    label.configure(text=('name: '+name.get()))
    
name = Entry()
name.grid(column=0,row=0)
btn = Button(text='go', command = go)
btn.grid(column=0,row = 1)
label = Label()
label.grid(column=0,row=2)
root.mainloop()
EvolJi
viegg
Получилось, но теперь вопрос: мне нужно разместить результат по координатам, как его вписать? Я пробовал name.configure(x;y), но оно выдавало ошибку. Я не знаю, какую переменную брать и задавать ей положение.
 def ok_button():
    name.configure(text=("Привет, " + name.get() + " " + surname.get() + "!" + " Ваш возраст: " + age.get() + " год(-а)"))
viegg
EvolJi
Получилось, но теперь вопрос: мне нужно разместить результат по координатам, как его вписать? Я пробовал name.configure(x;y), но оно выдавало ошибку. Я не знаю, какую переменную брать и задавать ей положение.

В примере выше у тебя уже был Label который стоял по координатам. Укажи его не в функции.
res1 = Label (root).place(x=1,y=1)
В функции для этой метки ты задаешь текст:
res1.configure(text“Привет, ” + name.get() + “ ” + surname.get() + “!” + “ Ваш возраст: ” + age.get() + “ год(-а)”))
EvolJi
viegg
Стоп, тот Label был простым текстом, который указывал = какой параметр я вписываю, оно просто стоит слева около поля ввода, чтобы различать. Мне же нужно, чтобы выводился новый лабел, который будет на других координатах и выводил результат.
viegg
EvolJi
Стоп, тот Label был простым текстом, который указывал = какой параметр я вписываю, оно просто стоит слева около поля ввода, чтобы различать. Мне же нужно, чтобы выводился новый лабел, который будет на других координатах и выводил результат.

Посмотри внимательнее в свой же код… в функции ok_button() объявляется тот самый новый Label… Я не представляю как еще понятнее объяснить.

 def ok_button():
    res1 = Label(Window, text = ('Привет, '+name.get()+' '+surname.get()+'!'+'Ваш возраст: '+age.get())).place(x=150,y=200)

EvolJi
Я пробовал name.configure(x;y), но оно выдавало ошибку. Я не знаю, какую переменную брать и задавать ей положение.

Ты сам написал этот код, или скопировал?
EvolJi
viegg
Я наверное додопицца с трёхлетним стажем жизни, но я не пойму. res1 я давно убрал, у меня сейчас код выглядит так
 def ok_button():
    result = name.configure(text=("Привет, " + name.get() + " " + surname.get() + "!" + " Ваш возраст: " + age.get() + " год(-а)"))
    resulttext = Label(Window, text=result)
    resulttext.place(x=150, y=150)
Но это не помогло, несмотря на логичность. И то, что вы выше писали про рес1 не сработало, я и убрал. Пока что у меня программа не выдаёт ошибку, если я использую name.configure. Думаю, нужно вокруг него крутиться. Код я пишу сам. Если вам не влень - можете написать готовую функцию? Потому что я добавляю всё новое, а в топике крутимся вокруг старых команд.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB