한 줄의 문자열을 입력하고 수정할 수 있도록 하는 위젯입니다. (QLineEdit 공식 문서) 참고
setEchoMode() 메서드를 이용하여, 입력 형식을 조정합니다. (예: setEchoMode(QLineEdit.Normal) 또는 setEchoMode(0))
echoMode 설정 상수
상수 | 값 | 설명 |
QLineEdit.Normal | 0 | 입력된 문자를 표시합니다. (기본값) |
QLineEdit.NoEcho | 1 | 문자열을 표시하지 않습니다. |
QLineEdit.Password | 2 | 입력된 문자 대신 비밀번호 가림용 문자를 표시합니다. |
QLineEdit.PasswordEchoOnEdit | 3 | 입력할 때만 문자를 표시하고, 수정 중에는 다른 문자를 표시합니다. |
maxLength() 메서드로 입력되는 텍스트의 길이를 제한할 수 있고, setValidator() 메서드로 입력되는 텍스트의 종류를 제한할 수도 있습니다. setText() 또는 insert() 메서드로, 텍스트를 편집할 수 있고, text() 메서드로 입력된 텍스트를 가져올 수 있습니다. 만약 echoMode에 의해 입력되는 텍스트와 표시되는 텍스트가 다르다면, displayText() 메서드로 표시되는 텍스트를 가져올 수도 있습니다.
setSelection(), selectAll() 메서드로 텍스트를 선택하거나, cut(), copy(), paste() 메서드를 통해 잘라내기, 복사하기, 붙여넣기 등의 동작을 수행할 수 있습니다. 또한 setAlignment() 메서드로 텍스트의 정렬을 설정할 수 있습니다.
텍스트가 변경되거나 커서가 움직일 때, textChanged(), cursorPositionChanged() 와 같은 시그널이 발생합니다.
자주 사용되는 시그널은 아래 표와 같습니다.
시그널 | 설명 |
cursorPositionChanged() | 커서가 움직일 때 신호를 발생합니다. |
editingFinished() | 편집이 끝났을 때 (Return/Enter 버튼이 눌릴 때) 신호를 발생합니다. |
returnPressed() | Return/Enter 버튼이 눌릴 때 신호를 발생합니다. |
selectionChanged() | 선택 영역이 바뀔 때 신호를 발생합니다. |
textChanged() | 텍스트가 변경될 때 신호를 발생합니다. |
textEdited() | 텍스트가 편집될 때 신호를 발생합니다. |
20-1 예제: ex19
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.lbl = QLabel(self) self.lbl.move(60, 40) qle = QLineEdit(self) qle.move(60, 100) #qle.setEchoMode(QLineEdit.NoEcho) qle.textChanged[str].connect(self.onChanged) self.setWindowTitle('QLineEdit') self.setGeometry(300, 300, 300, 200) self.show() def onChanged(self, text): self.lbl.setText(text) self.lbl.adjustSize() if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) |
20-2 설명
QLineEdit 위젯에서 입력되고 수정되는 텍스트가 라벨에 즉시 표시됩니다.
qle.textChanged[str].connect(self.onChanged) |
QLineEdit 의 인스턴스 qle에 텍스트가 바뀌면 textChanged[str]시그널이 발생하고 onChanged() 슬롯을 호출합니다.
def onChanged(self, text): self.lbl.setText(text) self.lbl.adjustSize() |
- onChanged() 메서드 안에서, 입력된 'text'를 setText() 메서드에서 매개변수로 입력 받아 텍스트를 출력합니다.
- adjustSize() 메서드로 텍스트의 길이에 따라 라벨의 길이를 자동으로 조절해 줍니다.
20-3 결과
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
22. QSlider & QDial (0) | 2021.07.26 |
---|---|
21. QProgressBar (0) | 2021.07.26 |
19. QComboBox (0) | 2021.07.23 |
18. QRadioButton (0) | 2021.07.23 |
17. QCheckBox (0) | 2021.07.23 |