goodthings4me.tistory.com
■ 파이썬으로 만든 간단한 PC용 QR코드 생성 프로그램
파이썬에서도 QR코드 생성 모듈을 여러 개 지원하고 있다는 것을 알았다.
파이썬 qrcode 모듈과 tkinter를 활용하여 웹사이트, 블로그, 유튜브 영상 등의 URL과 문구 등을 입력하여 QR코드를 간단하게 만들 수 있는 프로그램을 만들어 보았다.
그 모습은,
※ 쓸데있는 QR코드 생성기 프로그램 다운로드 : 여기(클릭)
▶ 프로그램 소스
from tkinter import *
import tkinter.messagebox as msgbox
import qrcode
import webbrowser
root = Tk()
root.title('쓸데있는 QR코드 생성기')
root.geometry('450x465+700+100')
root.resizable(False, False)
# 시작 버튼
def start():
# QR코드 생성할 내용 비었는지 확인
if len(content_frame.get('1.0', 'end')) <= 1:
msgbox.showwarning('Info', 'QR코드 생성할 내용을 입력하세요!')
return
# 파일명 비었는지 확인
if not len(txt_entry_filename.get()):
msgbox.showwarning('Info', '저장할 파일명을 입력하세요!')
return
qr_contents = content_frame.get('1.0', 'end-1c')
file_name = txt_entry_filename.get()
if qr_contents and file_name:
state_var.set('실행중.....')
root.update_idletasks()
## qr코드 만느는 객체 생성
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=1
)
qr.add_data(qr_contents)
qr.make(fit=True)
img = qr.make_image(fill_color='black', back_color='white')
img.save(file_name + '.jpg')
state_var.set('QR코드 생성 완료..!!')
else:
msgbox.showerror('오류', '프로그램 오류가 발생했습니다.!')
return
def func_quit():
root.destroy()
def read_me():
msgbox.showinfo('QR코드 생성 내용 입력 시 참고!', 'https://smartstore.naver.com/borame365 같은 블로그 URL\n'
'또는 https://youtu.be/uthkh1_OVTo 유튜브 URL 등을 입력 시,'
'"http(s)://" 또는 URL 내에 오탈자가 없도록 주의하세요.\n\n'
'홍보 문구, 친구나 연인에게 보내는 메시지 등을\n'
'텍스트로 입력하면 QR코드로 생성할 수 있습니다.\n')
def callback(url):
webbrowser.open_new(url) # # webbrowser.open_new(r"file://c:\test\test.csv")
# 사용법 표시 들어갈 공간
lbl_use_frame = Frame(root)
lbl_use_frame.pack(fill='x', padx=2, pady=2)
txt_url = '*프로그램 사용법 보기>>'
lbl_url_txt = Label(lbl_use_frame, text=txt_url, font=('Helveticabold', 8), justify='left', fg='blue', cursor='hand2')
lbl_url_txt.pack(side='right', fill='x', padx=5, pady=5, ipadx=5)
lbl_url_txt.bind('<Button-1>', lambda e: callback('https://blog.naver.com/borame365/222574050741'))
# QR코드 내용 입력 LabelFrame
qr_frame = LabelFrame(root, text="생성할 QR코드 내용 입력")
qr_frame.pack(fill="x", padx=5, pady=5, ipady=5)
# qr내용 입력 예시 레이블 - 예시 보이기
lbl_ex_frame = Frame(qr_frame)
lbl_ex_frame.pack(fill='x', padx=5, pady=1)
lbl_ex_url1 = Label(lbl_ex_frame, text='* URL 또는 텍스트 내용 입력')
lbl_ex_url1.pack(side='left')
# URL 입력 레이블 - 오른쪽(Read Me)
btn_url = Button(lbl_ex_frame, text='Read Me', width=8, command=read_me)
btn_url.pack(side='right', padx=5, pady=1)
# qr내용 입력 텍스트 프레임 - 엔터 가능
content_frame = Text(qr_frame, height=8) # width=, height=
content_frame.pack(fill='both', padx=5, pady=5)
# 저장할 파일명 입력 설명 LabelFrame
filename_frame = LabelFrame(root, text="")
filename_frame.pack(fill="x", padx=5, pady=5, ipady=5)
# 파일명 입력 레이블
lbl_url = Label(filename_frame, text='저장할 QR코드 파일명 :', width=18)
lbl_url.pack(side='left', padx=5, pady=5)
# 엔터 불가한 한 줄짜리 파일명 입력 엔트리
txt_entry_filename = Entry(filename_frame)
txt_entry_filename.insert(0, '')
txt_entry_filename.pack(side='left', fill='x', expand=True, padx=5, pady=5)
# 입력 레이블 - 예시 보이기
lbl_ex_frame = Frame(root)
lbl_ex_frame.pack(fill='x', padx=5, pady=0)
lbl_ex_filename = Label(lbl_ex_frame, text='* 파일명 예시) 내블로그_borame365')
lbl_ex_filename.pack(side='left')
# 프로그램 실행 표시 들어갈 공간
lbl_execute_frame = Frame(root)
lbl_execute_frame.pack(fill='x', padx=5, pady=2)
state_var = StringVar()
state_var.set(' ')
lbl_state_txt = Label(lbl_execute_frame, textvariable=state_var)
lbl_state_txt.configure(font=('Arial', 10, 'bold', 'italic'))
lbl_state_txt.pack(side='right', fill='x', padx=5, pady=2)
# 실행 프레임 - 생성, 닫기
frame_run = Frame(root)
frame_run.pack(fill='x', padx=5, pady=5)
btn_close = Button(frame_run, padx=5, pady=5, text='닫기', width=6, command=func_quit)
btn_close.pack(side='right', padx=5, pady=5)
btn_start = Button(frame_run, padx=5, pady=5, text='QR코드 생성', width=12, command=start)
btn_start.pack(side='right', padx=5, pady=5)
root.mainloop()
※ 생성된 QR코드
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파일명 일괄 변경하기 (with 파이썬) (0) | 2021.12.06 |
---|---|
파이썬 Tkinter 처음부터 차근차근 따라 하면서 배워보기 (0) | 2021.11.24 |
네이버 블로그 페이지에 있는 글 저장 및 이미지 다운로드하는 기능 만들기(with 파이썬) (3) | 2021.11.12 |
파이썬 장고(django) 웹 프로그래밍 - 웹 페이지 만들기 # 2 (0) | 2021.11.03 |
네이버 검색어 중 자동완성어 추출해보기(with 파이썬) (0) | 2021.10.15 |
댓글