프로그래밍/2022

파이썬 tkinter GUI 프로그래밍 로또번호 랜덤 생성기 만들기 - 파이썬독학

김플 2023. 4. 24. 17:49
반응형

파이썬 tkinter(티케이인터)를 사용하여 로또번호 랜덤 생성기를 제작해 보는 강의입니다.
tkinter는 파이썬에서 GUI(Graphical User Interface) 프로그래밍을 할 때 사용할 수 있는 모듈로 파이썬 설치 시 기본으로 포함되어 있습니다.

​random.sample을 사용하여 로또번호를 만들고 tkinter를 사용하여 GUI로 실행합니다.
tkinter.Tk를 사용하여 기본 창을 만들고,
tkinter.Label로 창에 라벨을 나타내고,
tkinter.Listbox를 사용하여 로또번호가 나타날 박스,
tkinter.Button으로 번호를 생성할 버튼을 만드는 것을 배웁니다.

아래 이미지와 같은 GUI 프로그램을 만들 수 있습니다.

번호 만들기 버튼 클릭전
번호 만들기 버튼 클릭 후 로또번호 랜덤 생성

import tkinter
import tkinter.font
import random

def click_btn():
    lotto_num_box.delete(0, tkinter.END)

    for i in range(5):
        lotto_nums = random.sample(range(1,46),6)
        lotto_nums = sorted(lotto_nums)
        lotto_nums = map(str, lotto_nums)
        lotto_nums = ", ".join(lotto_nums)
        lotto_num_box.insert(i, f"{i+1}회 : {lotto_nums}")

window = tkinter.Tk()
window.geometry("400x400")
window.resizable(False, False)

window.title("로또 번호 만들기")

# print(tkinter.font.families())

label = tkinter.Label(window, text="로또 번호 만들기", font=("나눔스퀘어 Bold",20), height=3)
label.pack()

lotto_num_box = tkinter.Listbox(window,selectmode="extended",activestyle="none", font=("나눔스퀘어 Bold",20), width=22, height=7)

lotto_num_box.insert(0, "번호만들기 버튼을 클릭하세요.")

lotto_num_box.pack()

button = tkinter.Button(window, text="번호만들기", font=("나눔스퀘어 Bold",20), command=click_btn)
button.pack(pady=20)

window.mainloop()

Listbox selectmode에 사용 가능한 옵션
browse : 한 개만 선택, 방향 키로 선택 이동 가능. 기본 옵션
single : 한 개만 선택, 방향키 이동 후 스페이스바 누르면 선택됨 - 직접 해보는 편이 이해가 잘됩니다.
multiple : 클릭하는 것 모두 선택, 한 개 선택 후 방향 키로 이동하고 스페이스바 누르면 함께 선택됨
extended : 마우스 드래그, 또는 shift + 방향키 이동으로 여러 개 선택

activestyle 옵션
underline : 선택된 부분에 밑줄 적용. 기본 옵션
none : 말 그대로 스타일 없음
dotbox : 선택된 부분에 점선 박스 적용

selectmode 옵션 중 방향 키로 이동하고 스페이스바 눌러서 선택하는 옵션(single, multiple)은 activestyle 옵션을 none을 하게 되면 방향키 이동할 때 아무 스타일이 없어서 누른 횟수로 판단하여 선택하게 됩니다. 이 부분은 직접 해보시는 게 이해가 빠릅니다.

강의에서 사용하는 파이썬은 3.10.6 버전이며 편집기는 vscode입니다.
사용하는 패키지는 tkinter, random입니다.

자세한 사용법은 유튜브 강의 영상을 참고 바랍니다.
https://youtu.be/9vmGFKI_QQs

반응형

▼웹크롤링&자동화를 제대로 배워보고 싶다면?▼

 

실습으로 끝장내는 파이썬 웹 크롤링과 웹 페이지 자동화 - 인프런 | 강의

쉬운 설명과 다양한 실습으로 어떠한 사이트라도 원하는 대로 파이썬(Python) 웹 크롤링을 할 수 있게 됩니다., - 강의 소개 | 인프런...

www.inflearn.com