반응형
[파이썬/Python] tkinter로 패스워드 생성하는 프로그램 만들어보기
#tkinter로 랜덤 문자열 생성하는 프로그램 만들기
#파이썬 GUI 프로그래밍
오늘은 파이썬의 tkinter를 이용해서 랜덤 문자열을 생성하는 프로그램을 만들어볼게요.
원하는 길이를 선택하여 랜덤 문자열을 만들 수 있는 프로그램이에요.
우선 아래와 같이 랜덤 문자열을 생성하는 함수를 만들어 놓겠습니다.
def generate(password, length):
password.set(''.join(random.choices('!@#$%^&*()' + string.ascii_letters + string.digits, k=int(length.get()))))
그리고는 tkinter를 이용하여 위의 함수를 호출해볼게요!
generate 함수를 호출 할 때, from functools import partial을 이용해서 함수 호출을 했어요.
파라미터도 같이 넘길 수 있으므로 눈여겨 보세요!
def main():
win = Tk()
password = StringVar()
length = StringVar()
ttk.Label(win, text='Length :', ).grid(column=0, row=0, pady=10, padx=10)
combo = ttk.Combobox(win, width=4, textvariable=length)
combo['values'] = [i for i in range(8, 21)]
combo.grid(column=1, row=0, pady=10)
ttk.Button(win, text='Generate', command=partial(generate, password, length)).grid(column=3, row=0, pady=10, padx=5)
ttk.Entry(win, textvariable=password).grid(column=4, row=0, pady=5, padx=10)
win.mainloop()
그럼 실행해보겠습니다!
여러가지 길이로 선택해서 Generate 버튼을 클릭하면 옆의 텍스트 부분에 랜덤 문자열이 표시되네요.
흐흐
잘 되니 기쁩니다.
완전한 코드는 아래에 공유하겠습니다.
즐거운 코딩되시길!
from tkinter import *
from tkinter import ttk
import random
import string
from functools import partial
def generate(password, length):
password.set(''.join(random.choices('!@#$%^&*()' + string.ascii_letters + string.digits, k=int(length.get()))))
def main():
win = Tk()
password = StringVar()
length = StringVar()
ttk.Label(win, text='Length :', ).grid(column=0, row=0, pady=10, padx=10)
combo = ttk.Combobox(win, width=4, textvariable=length)
combo['values'] = [i for i in range(8, 21)]
combo.grid(column=1, row=0, pady=10)
ttk.Button(win, text='Generate', command=partial(generate, password, length)).grid(column=3, row=0, pady=10, padx=5)
ttk.Entry(win, textvariable=password).grid(column=4, row=0, pady=5, padx=10)
win.mainloop()
if __name__ == "__main__":
main()
반응형