Не удается ничего ввести в виджете ввода, tkinter

#python #python-3.x #tkinter

Вопрос:

Виджет виден без ошибок, но я не могу ввести какой-либо текст ни в одну запись, так как курсор не появляется , когда я нажимаю на запись (также весь этот код является частью функции)(это просто часть всего кода, все остальные операции импорта и mainloop () и т. Д. Были выполнены, также эта функция используется для кнопки)r , enter code here

          window2=tk.Tk() 
         window2.title('Password Vault')
         window2.geometry('480x360')
         window2['bg']='black'

         import tkinter as tk

         e3=tk.Entry(window2)#had to do this as it was not recognizing e3,e4,e5 as a tkinter variable
         e4=tk.Entry(window2)
         e5=tk.Entry(window2)
         def clicked_add():
             global e3
             global e4
             global e5
             
             e3=tk.Entry()
             e_3=e3.place(x='110',y='235')
             
             e4=tk.Entry()
             e_4=e4.place(x='110',y='270')
             
             e5=tk.Entry()
             e_5=e5.place(x='110',y='305')
             
 

Комментарии:

1. сколько у вас в программе mainloop?

Ответ №1:

Вы не вызываете функцию clicked_add(). И, пожалуйста, импортируйте библиотеки в первых строках.

Ответ №2:

Я немного изменил ваш код:

 import tkinter as tk

window2=tk.Tk() 
window2.title('Password Vault')
window2.geometry('480x360')
window2['bg']='black'

e3=tk.Entry()
e_3=e3.place(x='110',y='235')

e4=tk.Entry()
e_4=e4.place(x='110',y='270')

e5=tk.Entry()
e_5=e5.place(x='110',y='305')

window2.mainloop()
 

Вот так код работает нормально!

И если вы действительно хотите, чтобы функция была включена, запустите ее сначала!

 import tkinter as tk

window2=tk.Tk() 
window2.title('Password Vault')
window2.geometry('480x360')
window2['bg']='black'

e3=tk.Entry(window2)#had to do this as it was not recognizing e3,e4,e5 as a tkinter variable
e4=tk.Entry(window2)
e5=tk.Entry(window2)
def clicked_add():
    global e3
    global e4
    global e5
    
    e3=tk.Entry()
    e_3=e3.place(x='110',y='235')
    
    e4=tk.Entry()
    e_4=e4.place(x='110',y='270')
    
    e5=tk.Entry()
    e_5=e5.place(x='110',y='305')

clicked_add()
window2.mainloop()
 

Ответ №3:

Вы не набрали clicked_add() в конце. А также вы должны упорядочить эти записи, введя:

 e3=tk.Entry(window2).grid(row=1, column=1)
e4=tk.Entry(window2).grid(row=2, column=1)
e5=tk.Entry(window2).grid(row=3, column=1)
 

Вы также можете использовать функцию place ().
И вы должны напечатать tk.mainloop в конце.
Сделано!

Комментарии:

1. Это всего лишь часть,я использовал ее в качестве команды для кнопки, все импортные операции выполнены,завершены window2.mainloop()