반응형

@31_로또번호 생성기 GUI

 

1. 랜덤한 값 6개 5쌍 만들기

2. 버튼GUI로 랜덤값 만들기

3. 화면에 표시하기


1. 랜덤값 6개 5쌍 만들기

import random

lotto_num = range(1,46)

# 5번 반복
for i in range(5):
	# 랜덤값 샘플 6개 출력
    print(random.sample(lotto_num, 6))

결과.

* random.sample(sequence, k)

- sequence : list, tuple, string 또는 set 이 될 수 있다.

- k : 정수값, 샘플 개수를 의미한다.

> sequence 안에서 k개의 리스트를 임의로 추출한다.

 


2. 버튼 눌러 난수값 발생

import tkinter
import tkinter.font
import random

lotto_num = range(1,46)

# 버튼클릭함수 사용되면 로또번호 출력
def buttonClick():
    print(random.sample(lotto_num, 6))
    
# 윈도우 생성
window = tkinter.Tk()
window.title('Lotto')
window.geometry('400x200+800+300') #800,300의 위치에 윈도우 표시
window.resizable(0,0)

# 버튼 생성
button = tkinter.Button(window, overrelief='solid', text='번호확인', width=15, 
						command=buttonClick, repeatdelay=1000, repeatinterval=100)
button.pack()

window.mainloop()

결과.

버튼을 누를 때 마다 터미널 창에 난수 발생


3. 화면에 표시하기

import tkinter
import tkinter.font
import random

lotto_num = range(1,46)

# 버튼클릭함수 사용되면 로또번호 출력
def buttonClick():
    for i in range(5):
        # 난수 6개 발생시켜 ,로 구분하고 앞에 몇회인지 표시하기
        lottoPick = map(str, random.sample(lotto_num, 6))
        lottoPick = ','.join(lottoPick)
        lottoPick = str(i+1)+'회: '+ lottoPick
        # 터미널창에도 쓰고
        print(lottoPick)
        # 리스트박스에 insert 하기 
        # 추가되는 거라서 원래 있던 (1회, 2회... )값들을 아래로 밀어낸다.
        listbox.insert(i, lottoPick)
    listbox.pack()
        
# 윈도우 만들기
window = tkinter.Tk()
window.title('Lotto')
window.geometry('400x200+800+300')
window.resizable(0,0)

# 버튼 만들기
button = tkinter.Button(window, overrelief='solid', text='번호확인', width=15, command=buttonClick, repeatdelay=1000, repeatinterval=100)
button.pack()

# 리스트박스 만들기
font = tkinter.font.Font(size = 10)
listbox = tkinter.Listbox(window, selectmode = 'extended', height=5, font=font)

# 리스트박스에 글 써 넣기
listbox.insert(0, "1회:")
listbox.insert(1, "2회:")
listbox.insert(2, "3회:")
listbox.insert(3, "4회:")
listbox.insert(4, "5회:")
listbox.pack()

window.mainloop()

결과.

1) 최초 실행

2) 클릭 후 (윈도우와 터미널에 출력)

 

3) 윈도우에는 insert 된 거라 스크롤하면 원래 있던 값들이 나온다.

 


음...

비주얼 프로그램이란게 이런거였는지 새록새록

tkinter는 텍스트로 꾸미는 것 같고

qtpy는 비주얼스튜디오처럼 도구가 있는 것 같다.

 

사용방법은 비슷하겠지... 예전에 c#을 했었다는 걸 잊어버렸네...

그게 벌써 14~15년이 되었네 ㅎ~

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기