用户界面-将随机生成的字符串从python复制到剪贴板



我正在开发一个"密码生成器",它将生成一个随机字符字符串。我想添加一个"复制"按钮,当单击该按钮时,它将获取随机字符串并将其添加到剪贴板,以便将其粘贴到其他位置。

我以为我已经用我的当前代码解决了问题,因为我不再收到错误消息,但每当我试图粘贴密码时,我都会收到类似"<函数genpass at 0x029BA5F0>"的信息。

import random
from swampy.Gui import *
from Tkinter import *
import string
#--------Globals-------
pcha = string.ascii_letters + string.punctuation + string.digits
g = Gui()
#--------Defs---------
def genpass():
    return "".join(random.choice(pcha) for i in range (10))
def close():
    g.destroy()
def copy():
    g.withdraw()
    g.clipboard_clear()
    g.clipboard_append(genpass)

#--------GUI----------
g.title("Password Helper")
g.la(text="Welcome to Password Helper! n n Choose from the options below to continue. n")

rndpass = StringVar()
update = lambda:rndpass.set(genpass())
btna = g.bu(text="Generate a New Password", command=update)
btna.pack(padx=5)
pbox = g.en(textvariable = rndpass)
pbox.config(justify='center')
pbox.pack( padx = 5)
btnb=g.bu(text ="Copy to Clipboard", command=copy)
btnc=g.bu(text ="Exit", command=close)
g.mainloop()

我觉得我只错过了一件能解决我问题的小事,但我猜不出是什么。我一直在四处寻找,找到了一些可能的解决方案(甚至是pyperclip),但无论我如何尝试,我总是会得到同样的结果。非常感谢您的帮助。

此行:

g.clipboard_append(genpass)

正在添加函数genpass,而不是其返回值

您需要使用():调用函数

g.clipboard_append(genpass())

编辑:看起来您正在将密码存储在rndpass中。因此,要将其收回,您需要调用rndpass.get():

g.clipboard_append(rndpass.get())

相关内容

  • 没有找到相关文章

最新更新