Python

[PyQt5] 텍스트 입력 받기 ( Line Edit 사용 )

Crazy-M2M 2023. 4. 3. 23:16
300x250
반응형

안녕하세요. Crazy M2M입니다.
오늘은 Line Edit를 사용해서 텍스트 입력받기 방법에 대해서 알아보도록 하겠습니다.
 
윈도우 프로그램은 사용자로부터 입력을 받는 경우가 많은데요.
사용자로부터 텍스트를 입력받는 방법에 대해서 간략히 소개하도록 하겠습니다 
 
먼저 텍스트를 입력받기 위해서 Line Edit를 드래그해 GUI를 구성해 줍니다. 
오른쪽 속성창에 lineEdit이라는 객체명으로 생성된 것을 확인할 수 있습니다.
 

 
다음으로 텍스트를 입력받고 나서 이것을 버튼 이벤트를 통해서 입력받도록 하겠습니다. 
아래와 같이 Push Button을 드래그해서 GUI에 적당히 배치시켜 줍니다. 
객체명은 pushButton입니다. 
나중에 Code에서 객체명을 사용하기 때문에 정확히 알고 가야 오류가 나지 않습니다. ^^

 
오른쪽 속성창에서 text 속성을 "입력"이라고 설정해 줄게요. 
GUI의 버튼에 "입력"으로 바로 반영되네요.^^
 

 
이제 GUI 설정을 마쳤으니 "a.ui"로 저장시켜 주세요. 
나중에 GUI를 loading 할 때 사용할 이름입니다.
 
Line Edit를 통해서 사용자 입력을 받고 입력 버튼 클릭하면 입력된 내용을 Message Box로 표시하는 코드입니다. 
 

300x250

 

from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi
import sys

class My_Win:
    def __init__(self) -> None:
        self.dlg = loadUi("a.ui")      
        
        self.dlg.pushButton.clicked.connect(self.btn_clicked)
                  
        self.dlg.show()
        
    def btn_clicked(self):
        txt = self.dlg.lineEdit.text()
        answer = QMessageBox.question(self.dlg, "확인", txt, QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        
        if answer == QMessageBox.Yes :
            print("Yes")
        else:
            print("No")                

app = QApplication( sys.argv)

my_win = My_Win()

app.exec()

 
F5를 눌러 실행시켜 줄게요. ^^
GUI가 떴습니다. 
 
Line Edit에 "정우성"이라고 입력하겠습니다. 

 
이제 입력 버튼을 클릭하면!!!
짜잔~~~
 
메시지 박스에 "정우성"이란 글자가 표시되는 것을 확인할 수 있어요. ^^
참 쉽지요~~~ㅋㅋㅋ

 
 

반응형

 

 
My_win 객체 생정자 코드입니다. 
PyQt Designer로 만들어진 "a.ui"를 로드에서 self.dlg 변수에 할당을 합니다. 
그리고 Push Button의 Clicked 이벤트를 self.btn_clicked 함수로 등록합니다.
마지막으로 a.ui를 show()를 통해서 실행시킵니다.  
 

def __init__(self) -> None:
        self.dlg = loadUi("a.ui")      
        
        self.dlg.pushButton.clicked.connect(self.btn_clicked)
                  
        self.dlg.show()

 
다음은 Push Button Clicked 이벤트 핸들러 코드입니다. 
lineEdit 객체의 text() 메서드를 이용해서 사용자가 작성한 텍스트를 txt 변수 할당합니다. 
그 값을 이용해서 MessageBox에 내용을 넣어서 Message Box가 생성되도록 설정합니다. 
MessageBox Button은 Yes / No 이렇게 나오도록 설정합니다.
 

    def btn_clicked(self):
        txt = self.dlg.lineEdit.text()
        answer = QMessageBox.question(self.dlg, "확인", txt, QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

 
여기서 Yes를 누르면 QmessageBox의 결과 값으로 어떤 키가 눌러졌는지를 확인합니다. 
answer가 QMessageBox.Yes이면 Yes를 콘솔에 표시하고
QMessageBox.No 이면 "No"를 표시하는 코드입니다. 
 

if answer == QMessageBox.Yes :
            print("Yes")
        else:
            print("No")

 
이것으로 Line Edit를 이용해서 텍스트 입력받기 방법에 대해서 알아보았습니다. 
그럼 오늘도 칼퇴근!!!

728x90
반응형