Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 25, 2020 22:30:07

EvolJi
Зарегистрирован: 2020-01-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter и его Label

Смотрите, я хочу сделать код, который берёт данные с параметра Label (ввод текста в переменную) и выводит их совмещенно. Если бы я писал в print, то код можно писать так
print(“Привет, ” + name + “ ” + surname “!”) и результат выводился правильно в консоле
, но если их выводить через Label, то выводится то, что в скобочках, а остальное не берёт. Мне нужно , чтобы Label и его параметр text брал всю команду. Ошибка консоли на втором скрине.



MC 5orka

Офлайн

#2 Янв. 26, 2020 11:53:26

viegg
Зарегистрирован: 2019-05-04
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter и его Label

Для того что бы получить данные из формы используй name.get(),age.get() и тд. Иначе ты пытаешься добавить в строку свой виджет, из-за этого и ошибка.

Офлайн

#3 Янв. 26, 2020 12:05:27

EvolJi
Зарегистрирован: 2020-01-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter и его Label

viegg
Для того что бы получить данные из формы используй name.get(),age.get() и тд. Иначе ты пытаешься добавить в строку свой виджет, из-за этого и ошибка.
Так если я его получу, то всё равно в параметре Label , при text не получится, тк графа text=“” берёт только то, что в скобочках, а мне нужно ещё с переменными выводить текст.



MC 5orka

Офлайн

#4 Янв. 26, 2020 12:09:36

viegg
Зарегистрирован: 2019-05-04
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter и его Label

EvolJi
Попробуй и у тебя все получится

Офлайн

#5 Янв. 26, 2020 12:13:13

viegg
Зарегистрирован: 2019-05-04
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter и его Label

 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()

Офлайн

#6 Янв. 26, 2020 13:41:07

EvolJi
Зарегистрирован: 2020-01-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter и его Label

viegg
Получилось, но теперь вопрос: мне нужно разместить результат по координатам, как его вписать? Я пробовал name.configure(x;y), но оно выдавало ошибку. Я не знаю, какую переменную брать и задавать ей положение.
 def ok_button():
    name.configure(text=("Привет, " + name.get() + " " + surname.get() + "!" + " Ваш возраст: " + age.get() + " год(-а)"))



MC 5orka

Офлайн

#7 Янв. 26, 2020 15:18:23

viegg
Зарегистрирован: 2019-05-04
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter и его Label

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

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

Офлайн

#8 Янв. 26, 2020 15:40:30

EvolJi
Зарегистрирован: 2020-01-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter и его Label

viegg
Стоп, тот Label был простым текстом, который указывал = какой параметр я вписываю, оно просто стоит слева около поля ввода, чтобы различать. Мне же нужно, чтобы выводился новый лабел, который будет на других координатах и выводил результат.



MC 5orka

Офлайн

#9 Янв. 26, 2020 17:15:08

viegg
Зарегистрирован: 2019-05-04
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Tkinter и его Label

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), но оно выдавало ошибку. Я не знаю, какую переменную брать и задавать ей положение.

Ты сам написал этот код, или скопировал?

Офлайн

#10 Янв. 26, 2020 17:30:36

EvolJi
Зарегистрирован: 2020-01-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter и его Label

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. Думаю, нужно вокруг него крутиться. Код я пишу сам. Если вам не влень - можете написать готовую функцию? Потому что я добавляю всё новое, а в топике крутимся вокруг старых команд.



MC 5orka

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version