tkinter

Пользователь

от limnikita18 , в категории: Python , 2 года назад

помогите пожалуйста доделать приложение рандомайзер паролей с помощью библиотеки tkinter. я не могу вывести пароль в окно мне PyCharm выдаёт ошибку типо нет такой переменной IntVar.



Код:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import random
from tkinter import *

root = Tk()

# доступные символы
chars = '+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'

root.title('рандомайзер паролей')
root.geometry('375x500')

value = IntVar()

h = Entry(textvariable=value)
z = Label(text='введите количество символов в пароле')
b = Button(text='далее')
t = Label(text='пароль: ', textvariable=value)

z.pack()
h.pack()
b.pack()
var = t.pack


def test():
    for i in range(1):
        password = ''
        for k in range(value):
            password += random.choice(chars)
        print(password)


b.bind('<Button-1>', test)

root.mainloop()


Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaren , 2 года назад

@limnikita18 Вы используете IntVar как value в качестве переменной для хранения значения, введенного в Entry. Но value у вас объявлена как IntVar, а не StringVar. Чтобы вывести результат в окно, вы должны использовать StringVar:

1
2
3
value = StringVar()
# ...
t = Label(text='пароль: ', textvariable=value)


И в функции test:

1
value.set(password)