[PySide2] TextEdit의 textChanged 이벤트를 받아 개행 문자 삭제
2024. 1. 26. 20:42ㆍ프로젝트 로그/테스트x솔루션 JIG 개발기
반응형
Example Code
TextEdit에서 입력된 값이 변경될 때 마다 이벤트를 받아 개행문자가 있는지 확인하고 삭제하는 예제입니다.
TextEdit에 수정된 문자열을 입력하면서도 이벤트가 발생 할 수 있기 때문에 아래와 같이 무한루프를 방지하기 위한 코드를 추가 하였습니다.
from PySide2.QtWidgets import QApplication, QTextEdit, QVBoxLayout, QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 레이아웃 설정
self.layout = QVBoxLayout(self)
# QTextEdit 위젯 생성 및 레이아웃에 추가
self.text_edit = QTextEdit()
self.layout.addWidget(self.text_edit)
# QTextEdit의 textChanged 시그널에 슬롯(함수) 연결
self.text_edit.textChanged.connect(self.on_text_changed)
def on_text_changed(self):
# 현재 QTextEdit의 텍스트를 가져옵니다.
text = self.text_edit.toPlainText()
# CR과 LF를 제거합니다.
modified_text = text.replace('\r', '').replace('\n', '')
# 현재 텍스트와 수정된 텍스트가 다를 경우, QTextEdit를 업데이트합니다.
if text != modified_text:
# 블록 시그널을 사용하여 무한 루프를 방지합니다.
self.text_edit.blockSignals(True)
self.text_edit.setText(modified_text)
self.text_edit.blockSignals(False)
# 애플리케이션 생성
app = QApplication([])
# 위젯 생성 및 표시
my_widget = MyWidget()
my_widget.show()
# 애플리케이션 실행
app.exec_()
반응형
'프로젝트 로그 > 테스트x솔루션 JIG 개발기' 카테고리의 다른 글
리눅스 usb-serial latency 값 줄이기 (0) | 2024.02.12 |
---|---|
라즈베리파이, 오렌지파이 SD 카드 깨짐 문제 (0) | 2024.02.07 |
오렌지파이5B GPIO로 전원 끄기 (0) | 2024.01.11 |
orangepi에서 root 권한으로 실행하는 명령을 비밀번호 없이 수행되도록 설정하기 (0) | 2024.01.03 |
[testXJIG QR 코드 인식 고도화 #3-3] 구현 부분 (0) | 2023.07.21 |