1. 코드
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QLineEdit from PyQt5.QtCore import Qt import sys class 한줄입력기(QWidget): def __init__(self): super().__init__() self.UI초기화() def UI초기화(self): self.label =QLabel(self) self.label.move(30,20) self.ledit = QLineEdit(self) self.ledit.move(30, 50) self.ledit.textChanged[str].connect(self.changed1) self.ledit.returnPressed.connect(self.changeText) self.label2 = QLabel(self) self.label2.move(30,100) ledit2 = QLineEdit(self) ledit2.move(30,130) ledit2.setEchoMode(2) ledit2.textChanged[str].connect(self.changed2) self.setWindowTitle('QLineEdit') self.setGeometry(300, 300, 400, 300) self.show() def changed1(self): self.label.setText('편집중입니다. 마치실려면 Enter를 눌러주세요') self.label.adjustSize() def changeText(self): self.label.setText(self.ledit.text()) def changed2(self,text): self.label2.setText(text) self.label2.adjustSize() 프로그램무한반복 = QApplication(sys.argv) 실행인스턴스 = 한줄입력기() 프로그램무한반복.exec_()
2. 상세 내용
- QLineEdit
- QLineEdit의 Slots과 Signals입니다. 슬롯과 시그널에 대해서는 Chapter6에서 자세하게 다룹니다.

- 여기서 시그널 중
textChanged[str]
를 사용하여 입력창의 텍스트가 수정되고 있는 상태면changed1
함수를 연결합니다. 함수에서는 라벨 텍스트 수정과 사이즈 조절을 하고 있습니다.
self.ledit.textChanged[str].connect(self.changed1)
def changed1(self): self.label.setText('편집중입니다. 마치실려면 Enter를 눌러주세요') self.label.adjustSize()
returnPressed
시그널을 활용하여 엔터키를 입력하면chageText
이벤트가 발생하도록 합니다. 여기서는 텍스트 에디터에 입력된 문자로 라벨 텍스트를 업데이트 합니다.
self.ledit.returnPressed.connect(self.changeText)
def changeText(self): self.label.setText(self.ledit.text())
- 미리 정의된 매서드 중 setEchoMode를 사용하여 입력된 문자를 라벨에 업데이트 합니다.
ledit2.setEchoMode(2)
setEchoMode() 함수
QLineEdit.Normal : 입력된 문자 표시 (기본값) / 숫자 = 0
QLineEdit.NoEcho : 문자열 표시 x / 숫자 = 1
QLineEdit.Password : 입력된 문자 대신 비밀번호용 문자(*) 로 표시 / 숫자 = 2
QLineEdit.PasswordEchoOnEdit : 입력시에 문자 표시, 수정중에는 다른 문자 표시 / 숫자 =3
- ledit2도 ledit1과 마찬가지 방법으로 구현되어 있습니다.
ledit2.textChanged[str].connect(self.changed2)
def changed2(self,text): self.label2.setText(text) self.label2.adjustSize()
3. 실행 화면

ledit2.setEchoMode(2) 로 인해 입력된 텍스트가 가려짐

Enter 입력 후 결과