728x90
반응형
안녕하세요, 오늘은 PyQt5의 QLineEdit 위젯에 대해 알아보겠습니다. QLineEdit은 단일 행 텍스트 입력을 위한 위젯으로, 다양한 속성과 메서드를 통해 강력한 기능을 제공합니다. QLineEdit의 주요 속성과 그 사용법에 대해 자세히 설명하겠습니다.
1. QLineEdit 기본 사용법
PyQt5에서 QLineEdit을 사용하려면 먼저 QLineEdit 객체를 생성하고 이를 적절한 레이아웃에 추가해야 합니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.line_edit = QLineEdit(self)
layout.addWidget(self.line_edit)
self.setLayout(layout)
self.setWindowTitle('QLineEdit Example')
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
2. QLineEdit 주요 속성
2.1 텍스트 설정 및 가져오기
- setText(text): 텍스트를 설정합니다.
- text(): 현재 텍스트를 반환합니다.
self.line_edit.setText('Hello, PyQt5!')
print(self.line_edit.text())
2.2 플레이스홀더 텍스트
- setPlaceholderText(text): 입력 필드에 플레이스홀더 텍스트를 설정합니다.
- placeholderText(): 현재 플레이스홀더 텍스트를 반환합니다.
self.line_edit.setPlaceholderText('Enter your text here...')
2.3 에코 모드
- setEchoMode(mode): 입력된 텍스트의 표시 방식을 설정합니다.
- QLineEdit.Normal: 일반 텍스트 (기본값)
- QLineEdit.NoEcho: 텍스트 숨김
- QLineEdit.Password: 비밀번호 모드
- QLineEdit.PasswordEchoOnEdit: 비밀번호 모드 (편집 시에만 텍스트 표시)
self.line_edit.setEchoMode(QLineEdit.Password)
2.4 입력 마스크
- setInputMask(mask): 입력 마스크를 설정합니다. 입력 마스크는 특정 형식에 맞는 입력을 강제할 때 사용합니다.
self.line_edit.setInputMask('0000-00-00;_') # 예: 날짜 입력 (YYYY-MM-DD)
2.5 읽기 전용
- setReadOnly(readonly): 읽기 전용 모드로 설정합니다.
- isReadOnly(): 읽기 전용 여부를 반환합니다.
self.line_edit.setReadOnly(True)
3. QLineEdit 주요 메서드
3.1 커서 제어
- setCursorPosition(pos): 커서 위치를 설정합니다.
- cursorPosition(): 현재 커서 위치를 반환합니다.
self.line_edit.setCursorPosition(5)
3.2 선택 제어
- setSelection(start, length): 텍스트 선택 영역을 설정합니다.
- selectAll(): 전체 텍스트를 선택합니다.
- deselect(): 선택을 취소합니다.
- selectedText(): 선택된 텍스트를 반환합니다.
self.line_edit.setSelection(0, 5)
print(self.line_edit.selectedText())
3.3 텍스트 편집 제어
- cut(): 선택된 텍스트를 잘라내기 합니다.
- copy(): 선택된 텍스트를 복사합니다.
- paste(): 클립보드의 텍스트를 붙여넣기 합니다.
- undo(): 마지막 편집을 실행 취소합니다.
- redo(): 실행 취소된 편집을 다시 실행합니다.
self.line_edit.cut()
self.line_edit.copy()
self.line_edit.paste()
self.line_edit.undo()
self.line_edit.redo()
4. 이벤트 및 시그널 처리
QLineEdit은 다양한 시그널을 제공합니다. 대표적인 시그널로는 textChanged, textEdited, returnPressed 등이 있습니다.
4.1 시그널 연결
- textChanged: 텍스트가 변경될 때마다 발생합니다.
- textEdited: 사용자가 텍스트를 편집할 때 발생합니다.
- returnPressed: 사용자가 Enter 키를 눌렀을 때 발생합니다.
self.line_edit.textChanged.connect(self.on_text_changed)
self.line_edit.textEdited.connect(self.on_text_edited)
self.line_edit.returnPressed.connect(self.on_return_pressed)
def on_text_changed(self, text):
print(f'Text changed: {text}')
def on_text_edited(self, text):
print(f'Text edited: {text}')
def on_return_pressed(self):
print('Return pressed')
5. 예제 코드
마지막으로, 지금까지 배운 내용을 포함한 전체 예제 코드를 작성해보겠습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QLabel
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.label = QLabel('QLineEdit Example', self)
layout.addWidget(self.label)
self.line_edit = QLineEdit(self)
self.line_edit.setPlaceholderText('Enter your text here...')
self.line_edit.textChanged.connect(self.on_text_changed)
self.line_edit.returnPressed.connect(self.on_return_pressed)
layout.addWidget(self.line_edit)
self.setLayout(layout)
self.setWindowTitle('QLineEdit Example')
self.setGeometry(300, 300, 300, 200)
self.show()
def on_text_changed(self, text):
self.label.setText(f'Text changed: {text}')
def on_return_pressed(self):
self.label.setText('Return pressed')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
이상으로 PyQt5의 QLineEdit 위젯에 대한 주요 속성과 사용법을 살펴보았습니다. QLineEdit을 사용하여 다양한 텍스트 입력 기능을 구현할 수 있습니다.
728x90
반응형
'프로그래밍 > python' 카테고리의 다른 글
PyQt5 QSlider와 QDial의 모든 기능과 속성 사용법 (0) | 2024.05.23 |
---|---|
PyQt5 QProgressBar의 속성과 사용법 (0) | 2024.05.22 |
PyQt5 QComboBox: 모든 옵션과 사용 방법 (0) | 2024.05.19 |
PyQt5 QRadioButton: 메서드와 자세한 사용법 (0) | 2024.05.18 |
PyQt5이용 QCheckBox 사용하기 (0) | 2024.05.14 |