Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기 본문

Python/Python PyQt5 (GUI)

파이썬[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 모듈

 

파이썬[Python] 013 로또(lotto) 번호 생성기 만들기와 random 모듈

거의 대부분의 직장인의 꿈은 로또 1등이거나 한방에 큰 거금이 들어오는 것일 수 있습니다. 저 또한 매주 로또를 구매 하는 편입니다. 오늘은 로또 번호를 생성하는 코드를 작성해보도록 하겠��

appia.tistory.com

그럼 코드를 살펴보겠습니다.

    def Make_Number(self):
 
        Number = []
 
        while len(Number) &lt; 6:
 
            v=randint(045)
 
            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(250200)
        
        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(1050)
 
        button = QPushButton('Generate', self)
        
        button.move(10110)
        
        button.clicked.connect(lambda: self.print_label(label2))
 
        self.show()
 
 
    def Make_Number(self):
    
        Number = []
        
        while len(Number) &lt; 6:
        
            v=randint(145)
            
            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 버튼을 누를 때 마다 새로운 숫자가 생성이 됩니다. 

최초 Generate 실행 후 

위의 코드 파일을 첨부 드립니다. 참조 하시길 바랍니다. 

QT_Tutorial_008.py
0.00MB

현재 위의 파일을 바탕으로 Exe 파일을 다음 링크를 참고해서 생성해봤습니다. 

https://appia.tistory.com/123

 

파이썬[Python] 036 py파일 - exe파일(실행파일) 만들기

이번 포스팅은 Python파일을 가지고 Exe파일을 만드는 방법입니다. 모두가 알다시피, Python은 인터프리터 언어이고, Py파일은 남들에게 노출이 될 수 밖에 없습니다. 그리고 실행을 위해서는 파이썬

appia.tistory.com

이번 포스팅은 파이썬[Python GUI, PyQt5 Tutorial 008] PyQt5 버튼(QPushButton)과 라벨(QLabel)을 이용한 로또 번호 생성기 생성에 대해서 포스팅을 해봤습니다. 

저의 생각은 아무리 코딩을 배웠던 실제 관련해서 생성하지 않는다면, 아무것도 아닌 지나간 기억으로만 남을 수도 있기 때문에 그냥 생각나는것에 대해서 항상 코딩해보도록 하세요. 

 

혹시 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments