这是我的问题。我无法将randomtext()
函数的值返回给主函数。
我希望选择要复制的文本,然后将其粘贴到某个地方。使用Label
可以使用,但是当我使用Entry
时不能使用。我在做什么错了?
def psw_generator():
global gen
genpassw = Tk()
genpassw.title("password generator")
entrypassw = Entry(parent, textvariable = gen, state = DISABLED)
entrypassw.pack()
def randomtext():
x = 0
psw = ""
lenght = 16
full_char_table = "abcdef.."
type = full_char_table
gen = StringVar(value = psw)
for x in range(int(lenght)):
psw += type[int(random.randrange(len(type)))]
x += 1
return gen
答案 0 :(得分:0)
这段代码中有很多问题,所以我已经解决了,您完成的代码在这里:
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)
您需要使用genpassw的条目小部件中的“父级”是什么,因为那是您的父级小部件。
type = full_char_table
您曾经使用'type'作为变量,'type'是python的内置函数,所以您不能使用它。
x += 1
无需在for循环中使用增量>> x + = 1
entrypassw = Entry(parent, textvariable = gen, state = DISABLED)
entrypassw.pack()
return gen
您要返回gen。在将它们描述为小部件的文本变量之前,现在要返回它。已弃用。
您必须使用mainloop来运行GUI。
genpassw.mainloop()