- PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램
- 1. PyQt5 소개 (Introduction)
- 2. PyQt5 설치 (Installation)
- 3. PyQt5 기초 (Basics)
- 4. PyQt5 레이아웃 (Layout)
- 5. PyQt5 위젯 (Widget)
- QPushButton
- QLabel
- QCheckBox
- QRadioButton
- QComboBox
- QLineEdit
- QLineEdit (Advanced)
- QProgressBar
- QSlider & QDial
- QSplitter
- QGroupBox
- QTabWidget
- QTabWidget (Advanced)
- QPixmap
- QCalendarWidget
- QSpinBox
- QDoubleSpinBox
- QDateEdit
- QTimeEdit
- QDateTimeEdit
- QTextBrowser
- QTextBrowser (Advanced)
- QTextEdit
- QTableWidget
- QTableWidget (Advanced)
- 6. PyQt5 다이얼로그 (Dialog)
- 7. PyQt5 시그널과 슬롯 (Signal&Slot)
- 8. PyQt5 그림 그리기 (Updated)
- 9. PyQt5 실행파일 만들기 (PyInstaller)
- 10. PyQt5 프로그램 예제 (Updated)
- ▷ PDF ebook
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
QTextBrowser¶
QTextBrowser 클래스는 하이퍼텍스트 내비게이션을 포함하는 리치 텍스트 (서식있는 텍스트) 브라우저를 제공합니다.
이 클래스는 읽기 전용이며, QTextEdit의 확장형으로서 하이퍼텍스트 문서의 링크들을 사용할 수 있습니다.
편집 가능한 리치 텍스트 편집기를 사용하기 위해서는 QTextEdit을 사용해야 합니다.
또한 하이퍼텍스트 네비게이션이 없는 텍스트 브라우저를 사용하기 위해서는 QTextEdit을 setReadOnly()를 사용해서 편집이 불가능하도록 해줍니다.
짧은 리치 텍스트를 표시하기 위해서는 QLabel을 사용할 수 있습니다.
예제¶
## Ex 5-19. QTextBrowser.
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QLineEdit, QTextBrowser, QPushButton, QVBoxLayout)
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.le = QLineEdit()
self.le.returnPressed.connect(self.append_text)
self.tb = QTextBrowser()
self.tb.setAcceptRichText(True)
self.tb.setOpenExternalLinks(True)
self.clear_btn = QPushButton('Clear')
self.clear_btn.pressed.connect(self.clear_text)
vbox = QVBoxLayout()
vbox.addWidget(self.le, 0)
vbox.addWidget(self.tb, 1)
vbox.addWidget(self.clear_btn, 2)
self.setLayout(vbox)
self.setWindowTitle('QTextBrowser')
self.setGeometry(300, 300, 300, 300)
self.show()
def append_text(self):
text = self.le.text()
self.tb.append(text)
self.le.clear()
def clear_text(self):
self.tb.clear()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
줄 편집기와 텍스트 브라우저가 창에 나타납니다.
설명¶
self.le = QLineEdit()
self.le.returnPressed.connect(self.append_text)
줄 편집기 하나를 만들었습니다.
Enter키를 누르면 append_text 메서드가 호출됩니다.
self.tb = QTextBrowser()
self.tb.setAcceptRichText(True)
self.tb.setOpenExternalLinks(True)
QTextBrowser() 클래스를 이용해서 텍스트 브라우저를 하나 만들었습니다.
setAcceptRichText()를 True로 설정해주면, 서식 있는 텍스트 (Rich text)를 사용할 수 있습니다.
디폴트로 True이기 때문에 없어도 되는 부분입니다.
setOpenExternalLinks()를 True로 설정해주면, 외부 링크로의 연결이 가능합니다.
self.clear_btn = QPushButton('Clear')
self.clear_btn.pressed.connect(self.clear_text)
clear_btn을 클릭하면, clear_text 메서드가 호출됩니다.
def append_text(self):
text = self.le.text()
self.tb.append(text)
self.le.clear()
append_text 메서드는 줄 편집기에 작성된 텍스트 (self.le.text())를 텍스트 브라우저 (self.tb)에 append 해주는 기능을 합니다.
텍스트가 텍스트 브라우저에 추가되면, clear 메서드를 이용해서 줄 편집기에 있던 텍스트는 없애줍니다.
def clear_text(self):
self.tb.clear()
clear_text 메서드가 호출되면, clear 메서드를 이용해서 텍스트 브라우저 (self.tb)에 있던 텍스트를 없애줍니다.
Plain Text
<b>Bold</b>
<i>Italic</i>
<p style="color: red">Red</p>
<p style="font-size: 20px">20px</p>
<a href="https://www.naver.com">Naver</a>
줄 편집기에 위의 텍스트를 순서대로 입력하고 엔터키를 이용해서 텍스트 브라우저에 추가합니다.