В этом коде много проблем, поэтому я решил их, и ваш готовый код здесь:
import random
from tkinter import *
global gen
genpassw = Tk()
gen = StringVar()
genpassw.title("password generator")
entrypassw = Entry(genpassw, textvariable = gen, state = DISABLED)
entrypassw.pack()
def randomtext():
global gen
x = 0
psw = ""
length = 16
full_char_table = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for x in range(int(length)):
psw += full_char_table[random.randint(0,len(full_char_table)-1)]
gen.set(psw)
randomtext()
genpassw.mainloop()
Итак, взгляните на ваши проблемы
entrypassw = Entry(parent, textvariable = gen, state = DISABLED)
Что такое 'parent 'в виджете ввода, вам нужно использовать genpassw, потому что это ваш родительский виджет.
type = full_char_table
Вы использовали' type 'в качестве переменной,' type 'является встроенной функцией python, поэтому вы не можете его использовать.
x += 1
Нет необходимости использовать приращение для цикла >> x + = 1
entrypassw = Entry(parent, textvariable = gen, state = DISABLED)
entrypassw.pack()
return gen
Вы возвращаете gen. До того, как вы описали их как текстовую переменную для виджета, а теперьВы возвращаете это.Это устарело.
Вы должны использовать mainloop, чтобы запустить графический интерфейс.
genpassw.mainloop()