일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 비주얼베이직
- windows
- python
- 파이썬
- Outlook
- 문자열
- python3
- html
- pythongui
- 윈도우11
- Android
- pandas
- win32com
- Excel
- 아웃룩
- Windows11
- 오피스
- 파이썬GUI
- git
- pyqt5
- 윈도우10
- 파이썬3
- VBA
- Windows10
- 엑셀
- 안드로이드
- office
- matlab
- 파워포인트
- 깃
Appia의 IT세상
파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기 본문
파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기
Appia 2020. 6. 19. 07:44파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기
이번 포스팅은 GUI기반으로 로또 번호를 생성하는 부분을 생성하고자 합니다. 실은 앞서 포스팅에서 버튼(QPushButton)과 라벨(QLabel)에 대해서 이야기를 했는데 이 부분을 조금 더 활용하는 방법을 찾다가 로또 번호 생성기를 만들어보고자 하였습니다.
앞서서 GUI 클래스에 총 세가지의 함수로 구성을 할 예정입니다.
1) 로또 숫자 생성하는 함수 - 이 함수는 예전에 포스팅 했던 내용을 적극 활용한 내용입니다. <다음링크 참조>
파이썬[Python] 013 로또(lotto) 번호 생성기 만들기와 random 모듈
그럼 코드를 살펴보겠습니다.
def Make_Number(self): Number = [] while len(Number) < 6: v=randint(0, 45) if v not in Number : Number.append(v) return Number | cs |
random모듈과 반복문을 통해서 1~45 사이에서의 6 숫자를 찾는 방법을 선택하였습니다.
그럼, 위에서 생성한 부분을 라벨(QLabel)엘 출력하는 함수는 다음과 같습니다.
def print_label(self,label): Number = self.Make_Number() Number.sort() label.setText(str(Number)) | cs |
위에서 Make_Number()함수를 통해서 생성된 숫자를 sort()메소드를 통해서 정렬합니다. 이 부분을 label에 출력해주는 형태입니다.
그러 전체 코드를 한번 살펴보고 결과를 한번 살펴보도록 하겠습니다.
import sys from random import * from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton class QtGUI(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Lotto Number Generator") self.resize(250, 200) self.intialL1 = 'Recommend Lotto Number' self.intialL2 = 'None, None, None, None, None, None' label1 = QLabel(self.intialL1 , self) label1.move(10,10) label2 = QLabel(self.intialL2, self) label2.move(10, 50) button = QPushButton('Generate', self) button.move(10, 110) button.clicked.connect(lambda: self.print_label(label2)) self.show() def Make_Number(self): Number = [] while len(Number) < 6: v=randint(1, 45) if v not in Number : Number.append(v) return Number def print_label(self,label): Number = self.Make_Number() Number.sort() label.setText(str(Number)) if __name__ == '__main__': app = QApplication(sys.argv) ex = QtGUI() app.exec_() | cs |
위의 코드를 실행하면 다음과 같은 화면이 나타납니다.
그리고 Generate 버튼을 누를 때 마다 새로운 숫자가 생성이 됩니다.
위의 코드 파일을 첨부 드립니다. 참조 하시길 바랍니다.
현재 위의 파일을 바탕으로 Exe 파일을 다음 링크를 참고해서 생성해봤습니다.
이번 포스팅은 파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기 생성에 대해서 포스팅을 해봤습니다.
저의 생각은 아무리 코딩을 배웠던 실제 관련해서 생성하지 않는다면, 아무것도 아닌 지나간 기억으로만 남을 수도 있기 때문에 그냥 생각나는것에 대해서 항상 코딩해보도록 하세요.
혹시 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.