-
파이썬 qrcode, tkinter 모듈로 만든 QR코드 생성기코딩 연습/코딩배우기 2021. 11. 21. 11:35
■ 파이썬으로 만든 간단한 PC용 QR코드 생성 프로그램
파이썬에서도 QR코드 생성 모듈을 여러 개 지원하고 있다는 것을 알았다.
파이썬 qrcode 모듈과 tkinter를 활용하여 웹사이트, 블로그, 유튜브 영상 등의 URL과 문구 등을 입력하여 QR코드를 간단하게 만들 수 있는 프로그램을 만들어 보았다.
그 모습은,
파이썬으로 만든 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코드
스마트폰 카메라로 인식시키면 내용을 볼 수 있음 QR코드(큐알코드) 생성 사이트 참도움 - 아파트 관련 정보 제공
아파트 정보, 아파트 실거래가, 아파트 샷시 교체 비용 등 생활정보
truedoum.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파일명 일괄 변경하기 (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