반응형
PyQt6는 Python으로 GUI 프로그래밍을 진행할 수 있도록 도와주는 라이브러리 중 하나입니다. 이번 블로그에서는 PyQt6의 QTextEdit 위젯에 대한 예제를 다룰 것입니다. QTextEdit은 여러 줄의 텍스트를 편집할 수 있는 위젯으로, 이를 이용해 텍스트 파일 편집기를 만들거나, 텍스트 관련 편집 프로그램을 만들 수 있습니다. 이번 예제에서는 QTextEdit 위젯의 설정과 이벤트 핸들링에 대해 다룰 것입니다.
- 텍스트 입력 및 편집: QTextEdit는 사용자에게 텍스트를 입력하고 편집할 수 있는 빈 캔버스를 제공합니다. 간단한 텍스트 편집기. 사용자는 텍스트를 입력하고 기존 텍스트를 삭제 및 수정할 수 있으며 화살표 키를 사용하여 텍스트를 탐색할 수 있습니다.
- 서식 지정: QTextEdit는 글꼴, 크기 및 색상을 변경하고 텍스트에 볼드체, 이탤릭체 및 밑줄 스타일을 적용하는 기능을 포함하여 리치 텍스트 서식을 지원합니다. 또한 글머리 기호 및 번호 매기기 목록 생성을 지원합니다.
- 실행 취소/다시 실행: QTextEdit는 사용자에게 다음과 같은 기능을 제공합니다. 텍스트 편집기와 유사하게 텍스트를 편집하는 동안 작업을 실행 취소하고 다시 실행합니다.
- 복사/붙여넣기: QTextEdit는 복사를 지원합니다. 다른 애플리케이션 간에 텍스트 붙여넣기.
- 선택: 사용자는 마우스 또는 키보드 단축키를 사용하여 텍스트의 일부를 선택할 수 있습니다.
- 커서 관리: QTextEdit는 커서를 특정 위치로 이동하고 커서를 사용하여 텍스트를 선택하는 등 텍스트 커서 조작을 지원합니다. , 커서를 사용하여 텍스트 복사 및 붙여넣기.
- 맞춤법 검사: QTextEdit는 맞춤법 검사 기능을 사용자 유형.
- 인쇄: QTextEdit는 인쇄 설정 사용자 정의 지원을 포함하여 인쇄할 수 있습니다. 인쇄 출력을 미리 볼 수 있습니다.
- 확대/축소: QTextEdit는 텍스트 확대 및 축소를 지원합니다.
설정
QTextEdit 위젯의 설정 방법 중 하나는 setPlainText() 메소드를 이용하는 것입니다. 이 메소드는 인자로 입력한 텍스트를 QTextEdit 위젯에 표시해줍니다. 아래 코드는 "Hello World"라는 텍스트를 QTextEdit 위젯에 표시하는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit import sys class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(100, 100, 500, 500) textEdit = QTextEdit(self) textEdit.setPlainText("Hello World") textEdit.setGeometry(50, 50, 400, 400) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec()) | cs |
이벤트1 (textChanged)
QTextEdit 위젯에서 텍스트 작성을 할때마다 반응하는 이벤트(textChanged) 입니다. 글자 작성시 실행창에 작성한 글자가 계속 이벤트 발생하면서 타이핑 되는것을 볼 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit import sys class MyWindow(QMainWindow): def __init__(self): super().__init__() self.text_edit = QTextEdit(self) self.setCentralWidget(self.text_edit) self.text_edit.textChanged.connect(self.on_text_changed) def on_text_changed(self): print("Text changed:", self.text_edit.toPlainText()) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec()) | cs |
이벤트2 (append)
버튼클릭시 QTextEdit에 결과(append)를 나타내주는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit, QPushButton import sys class MyWindow(QMainWindow): def __init__(self): super().__init__() self.text_edit = QTextEdit(self) self.setCentralWidget(self.text_edit) self.button = QPushButton("Click me", self) self.button.clicked.connect(self.on_button_click) def on_button_click(self): self.text_edit.append("Button clicked") if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec()) | cs |
이벤트표
Event NameDescription
textChanged | QTextEdit 위젯의 텍스트가 변경될 때마다 발생합니다. 이는 사용자 입력에 의해 또는 setText() 또는 insertPlainText() 메서드를 통해 프로그래밍 방식으로 텍스트를 수정하여 트리거될 수 있습니다. |
copyAvailable | QTextEdit 위젯에서 선택된 텍스트가 있고 사용자가 그것을 클립보드에 복사하도록 요청했을 때 발생합니다(예: Ctrl+C를 누르거나 "복사를 선택하여" " 컨텍스트 메뉴에서). 이 이벤트는 선택된 텍스트가 있는지 여부에 따라 컨텍스트 메뉴 또는 도구 모음에서 "복사" 작업을 활성화 또는 비활성화하는 데 사용할 수 있습니다. |
redoAvailable | 사용자가 QTextEdit 위젯에서 이전에 취소한 작업을 다시 실행할 수 있을 때 발생합니다. 이 이벤트는 상황에 맞는 메뉴 또는 도구 모음에서 "다시 실행" 작업을 활성화 또는 비활성화하는 데 사용할 수 있습니다. |
undoAvailable | 사용자가 QTextEdit 위젯에서 이전에 수행한 작업을 취소할 수 있을 때 발생합니다. 이 이벤트는 상황에 맞는 메뉴 또는 도구 모음에서 "실행 취소" 작업을 활성화 또는 비활성화하는 데 사용할 수 있습니다. |
cursorPositionChanged | QTextEdit 위젯의 커서 위치가 변경될 때 발생합니다. 이 이벤트는 현재 커서 위치에 대한 정보(예: 행 및 열 번호)를 표시하는 상태 표시줄 또는 기타 UI 요소를 업데이트하는 데 사용할 수 있습니다. |
selectionChanged | QTextEdit 위젯의 텍스트 선택이 변경될 때 발생합니다. 이 이벤트는 현재 선택을 반영하도록 UI를 업데이트하는 데 사용할 수 있습니다(예: 선택한 텍스트가 있는지 여부에 따라 "복사" 작업을 활성화 또는 비활성화하도록 업데이트). |
textEdited | 사용자가 QTextEdit 위젯의 텍스트를 편집할 때 발생합니다. 이 이벤트는 textChanged와 유사하지만 사용자 입력에 대해서만 발생합니다(즉, 텍스트가 프로그래밍 방식으로 수정된 경우에는 발생하지 않음). |
textChanged() | 이것은 이벤트가 아니라 메서드입니다. QTextEdit 위젯의 텍스트가 변경될 때마다 방출되는 신호를 반환합니다. 이 신호에 연결하여 텍스트가 변경될 때마다 몇 가지 작업을 수행할 수 있습니다(예: UI 업데이트 또는 텍스트에 대한 일부 처리 수행). |
이번 예제를 통해 PyQt6의 QTextEdit 위젯에 대한 설정과 이벤트 핸들링 방법을 살펴보았습니다. QTextEdit 위젯을 이용하면 텍스트 파일 편집기나 텍스트 관련 편집 프로그램을 만들 수 있습니다. 이번 예제를 참고하여 PyQt6를 이용한 다양한 프로그램을 만들어보시기 바랍니다.
반응형
'파이썬 (pythoon)' 카테고리의 다른 글
파이썬 python 무엇을 위해 배우는가? - 파이선 (0) | 2023.04.29 |
---|---|
python pyqt6 텍스트박스 사용하기(한글) (0) | 2023.04.01 |
Python PyQt6 QTab 사용 방법 예제 (0) | 2023.03.09 |
PyQt6 QMessageBox 설정방법 예제 (0) | 2023.03.08 |
PyQt6 QTabWidget 기본 구성 (python) (0) | 2023.03.07 |