파이썬 (pythoon)

Python PyQt6 QTextedit 예시 및 세팅(이벤트)

working for you 2023. 3. 12. 17:49
반응형

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(100100500500)
 
        textEdit = QTextEdit(self)
        textEdit.setPlainText("Hello World")
        textEdit.setGeometry(5050400400)
 
        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를 이용한 다양한 프로그램을 만들어보시기 바랍니다.

반응형