PyQt5는 파이썬을 위한 GUI 라이브러리입니다.
PyQt5를 이용해서 입력값이 맞는 경우 자동으로 꺼지는 프로그램을 만들어보았습니다!
x 버튼으로 닫지못하도록 윈도우에서 제공하는 닫기 버튼은 제거해주었습니다!
(원래는 아래와 같이 X버튼과 등등등이 있습니다!!)
from PyQt5.QtCore import Qt
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
input 창을 생성하는 부분인데 returnPressed를 이용하면 텍스트 입력 엔터를 치면 괄호 안의 함수가 실행됩니다.
self.qle = QLineEdit(self) #QLineEdit 위젯을 생성
self.qle.move(120, 100)
self.qle.returnPressed.connect(self.onChanged) #<---- 키보드 엔터누르면 onChanged() 함수 실행
input 창에 입력하고 엔터치면 onChanged함수로 넘어오게 됩니다.만약 비밀번호인 myText 값과 입력값인 self.qle.text()과 같은 경우에는 if문이 실행되어 0.1초 후에 창이 꺼지게됩니다.
틀린 경우에는 msgLabel을 변경해주어 화면에 틀렸다는 문자를 표기해줍니다.
def onChanged(self):
myText = "9999" #<---- 입력코드 설정
input = self.qle.text()
if myText == input : #코드가 맞으면 0.1초 대기후 창 종료
time.sleep(0.1) #0.1초 대기
self.onClose() #창 끄기
else : #입력 코드가 틀린 경우 멘트 띄움
self.msgLabel.setText('틀림, 다시 입력해주세요')
전체코드
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit
from PyQt5.QtCore import Qt
import time
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#윈도우 닫기 버튼 제거
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
#화면에 글자 표기
self.lbl = QLabel("입력 코드를 입력해주세요", self)
self.lbl.setAlignment(Qt.AlignCenter)
self.lbl.move(120, 40)
#입력값이 맞는 경우 수정되는 값
self.msgLabel = QLabel("", self)
self.msgLabel.setAlignment(Qt.AlignCenter)
self.msgLabel.setGeometry(130, 120, 300, 80)
#input 창 생성
self.qle = QLineEdit(self) #QLineEdit 위젯을 생성
self.qle.move(120, 100)
self.qle.returnPressed.connect(self.onChanged) #<---- 키보드 엔터누르면 onChanged() 함수 실행
print(self)
#기본 창 세팅
self.setWindowTitle('비밀번호 꺼지는 위젯') #타이틀바에 나타나는 창의 제목을 설정
self.move(500, 500) #위젯을 스크린의 x=300px, y=300px의 위치로 이동시킵니다.
self.resize(400, 200) # 위젯의 크기를 너비 400px, 높이 200px로 조절합니다.
self.show() #위젯을 스크린에 보여줍니다.
#input 창에서 실행하는 함수
#입력 테스트
def onChanged(self):
myText = "9999" #<---- 입력코드 설정
input = self.qle.text()
if myText == input : #코드가 맞으면 0.1초 대기후 창 종료
time.sleep(0.1) #0.1초 대기
self.onClose() #창 끄기
else : #입력 코드가 틀린 경우 멘트 띄움
self.msgLabel.setText('틀림, 다시 입력해주세요')
if __name__ == '__main__':
app = QApplication(sys.argv) #PyQt5 어플리케이션은 어플리케이션 객체를 생성
ex = MyApp()
sys.exit(app.exec_())
'파이썬' 카테고리의 다른 글
두 수 더하기, 두 수 곱하기 프로그램 (0) | 2022.04.30 |
---|
[파이썬] PyQt5을 이용한 비밀번호 입력 및 자동 종료