반응형
@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년이 되었네 ㅎ~
반응형
최근댓글