Почему мой ярлык не отображается в tkinter? - PullRequest
0 голосов
/ 26 ноября 2018
def name_label_manager(event):
    name = name_entry.get()
    label_name = Label(root, text="Name: " + name)
    label_name.grid(row=10, column=1, sticky=W)
    label_name.delete(0, "end")

def description_label_manager(event):
    description1 = description.get()
    descrpt = Label(root, text="Description: " + description1)
    descrpt.grid(row=9, column=1, sticky=W)
    descrpt.delete(0, "end")

я звоню им так:

button_get = Button(root, text="Submit")
button_get.bind("<Button-1>", description_label_manager,name_label_manager)
button_get.grid(row=2, column=8)

Я не знаю, правильно ли это, но я звоню им с помощью кнопки, по какой-то причине будет отображаться ярлык desctription_label_manager, но ярлык с именем не будет

1 Ответ

0 голосов
/ 27 ноября 2018
  1. Как отметил Брайан Оукли, labels не имеет delete method, Entry Listbox, но не имеет ярлыков

  2. ПодробнееТаким образом, вы можете думать о виджетах tkinter как о изображениях, нарисованных на вашем экране, чтобы эти изображения отображали текст, они должны иметь связанные с ними переменные, здесь мы создаем некоторые переменные StringVar() и присваиваем их Entry, которые вы затем можете использоватьget метод, чтобы получить то, что в данный момент хранится в них.

  3. Вы можете добавить аргумент command к кнопке для вызова функции, что должно быть сделано в вашем случае.

Проверьте код ниже, чтобы понять, что я только что объяснил выше

import tkinter as tk
def name_label_manager(event=None):
    name = name_entry_variable.get()
    label_name = tk.Label(root, text="Name: "+name)
    label_name.grid(row=10, column=1)
    #label_name.delete(0, "end")
    description_label_manager()

def description_label_manager(event=None):
    description1 = description_entry_variable.get()
    descrpt = tk.Label(root, text="Description: "+description1)
    descrpt.grid(row=9, column=1)
    #descrpt.delete(0, "end")

root=tk.Tk()
name_entry_variable=tk.StringVar()
description_entry_variable=tk.StringVar()
name_entry=tk.Entry(root,textvariable=name_entry_variable,width=10)
name_entry.grid(row=2, column=8)
description_entry=tk.Entry(root,textvariable=description_entry_variable,width=10)
description_entry.grid(row=3, column=8)
button_get = tk.Button(root, text="Submit", command=name_label_manager)
#button_get.bind("<Button-1>", description_label_manager,name_label_manager) command argument of Button should do
button_get.grid(row=4, column=8)
root.mainloop()
...