为什么当我单击“复制到剪贴板”按钮时,我从 StringVar 中得到元组值?我需要文本值
Why I get like tuple value from StringVar when I click copy to clipboard button? I need text value
为什么我从 StringVar()
获取元组值?
当我点击 Copy 按钮时,我从我的项目 ('n', 'o', 'i', 'Q', 'X', '2', 'd')
中得到这样的结果。
我需要来自 Copy button 的文本值。
没有 ''
.
的字符串
from tkinter import *
from tkinter import ttk
import random
window = Tk()
window.resizable(False , False)
window.title('Password Generator')
window.geometry('400x200')
length = IntVar()
lbl = StringVar()
var1 = StringVar()
Alphabet = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
showpass = ttk.Label(window , font = ('arial' ,15) , textvariable = lbl).pack()
def randalp():
string = list(Alphabet)
random.shuffle(string)
return string[:length.get()]
ttk.Label(window , text = 'Password Lentgh:').pack()
numchoosen = ttk.Combobox(window, width = 12 , textvariable = length)
numchoosen['values'] = (5,6,7,8,9,10)
numchoosen.pack()
numchoosen.current(2)
numchoosen.config(state = 'readonly')
rad1 = ttk.Checkbutton(window , text = 'Alphabet' , variable = var1).pack()
def btnclick():
get1 = var1.get()
if get1 == '1':
lbl.set(randalp())
def copybtn():
window.clipboard_clear()
window.clipboard_append(lbl.get())
ttk.Button(window , text = 'Generate' , command = btnclick).pack()
ttk.Button(window , text = 'Copy' , command = copybtn).pack()
window.mainloop()
你的函数 randalp()
returns 一个列表而不是一个字符串。
如下更改函数以获取字符串而不是列表:
def randalp():
string = list(Alphabet) # string is a list
random.shuffle(string)
return ''.join(string[:length.get()]) # return a string
为什么我从 StringVar()
获取元组值?
当我点击 Copy 按钮时,我从我的项目 ('n', 'o', 'i', 'Q', 'X', '2', 'd')
中得到这样的结果。
我需要来自 Copy button 的文本值。
没有 ''
.
from tkinter import *
from tkinter import ttk
import random
window = Tk()
window.resizable(False , False)
window.title('Password Generator')
window.geometry('400x200')
length = IntVar()
lbl = StringVar()
var1 = StringVar()
Alphabet = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
showpass = ttk.Label(window , font = ('arial' ,15) , textvariable = lbl).pack()
def randalp():
string = list(Alphabet)
random.shuffle(string)
return string[:length.get()]
ttk.Label(window , text = 'Password Lentgh:').pack()
numchoosen = ttk.Combobox(window, width = 12 , textvariable = length)
numchoosen['values'] = (5,6,7,8,9,10)
numchoosen.pack()
numchoosen.current(2)
numchoosen.config(state = 'readonly')
rad1 = ttk.Checkbutton(window , text = 'Alphabet' , variable = var1).pack()
def btnclick():
get1 = var1.get()
if get1 == '1':
lbl.set(randalp())
def copybtn():
window.clipboard_clear()
window.clipboard_append(lbl.get())
ttk.Button(window , text = 'Generate' , command = btnclick).pack()
ttk.Button(window , text = 'Copy' , command = copybtn).pack()
window.mainloop()
你的函数 randalp()
returns 一个列表而不是一个字符串。
如下更改函数以获取字符串而不是列表:
def randalp():
string = list(Alphabet) # string is a list
random.shuffle(string)
return ''.join(string[:length.get()]) # return a string