파이썬 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
'프로그래밍 > 2022' 카테고리의 다른 글
파이썬 gtts를 사용하여 텍스트를 음성으로 변환, playsound로 mp3 바로 재생하기 (0) | 2023.04.24 |
---|---|
파이썬 리스트 컴프리헨션(list comprehansion)으로 리스트 만들기 (0) | 2023.04.24 |
vscode 단축키, 사용법 / 비주얼 스튜디오 코드(Visual Studio Code) / 프로그래밍 초보자 코딩 속도 올리기 (0) | 2023.04.24 |
파이썬 독학 네이버 OpenAPI 사용 me2.do 단축 url 만들기 (0) | 2023.04.24 |
파이썬 독학 웹 크롤링 멜론 TOP100 실시간 차트 순위 검색 결과 가져오기 - beautifulsoup, requests 기초 사용법 (0) | 2023.04.24 |