이 페이지에서

QTextBrowser Class

QTextBrowser 클래스는 하이퍼텍스트 탐색 기능을 갖춘 리치 텍스트 브라우저를 제공합니다. 더 보기...

헤더: #include <QTextBrowser>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속: QTextEdit

속성

공개 함수

QTextBrowser(QWidget *parent = nullptr)
int backwardHistoryCount() const
void clearHistory()
int forwardHistoryCount() const
QString historyTitle(int i) const
QUrl historyUrl(int i) const
bool isBackwardAvailable() const
bool isForwardAvailable() const
bool openExternalLinks() const
bool openLinks() const
QStringList searchPaths() const
void setOpenExternalLinks(bool open)
void setOpenLinks(bool open)
void setSearchPaths(const QStringList &paths)
QUrl source() const
QTextDocument::ResourceType sourceType() const

재구현된 공용 함수

virtual QVariant loadResource(int type, const QUrl &name) override

공개 슬롯

virtual void backward()
virtual void forward()
virtual void home()
virtual void reload()
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

신호

void anchorClicked(const QUrl &link)
void backwardAvailable(bool available)
void forwardAvailable(bool available)
void highlighted(const QUrl &link)
void historyChanged()
void sourceChanged(const QUrl &src)

보호된 함수

virtual void doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

재구현된 보호 함수

virtual bool event(QEvent *e) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *e) override

상세 설명

이 클래스는 QTextEdit 를 (읽기 전용 모드로) 상속하며, 사용자가 하이퍼텍스트 문서 내의 링크를 따라갈 수 있도록 몇 가지 탐색 기능을 추가합니다.

사용자에게 편집 가능한 리치 텍스트 편집기를 제공하려면 ` QTextEdit`를 사용하십시오. 하이퍼텍스트 탐색 기능이 없는 텍스트 브라우저를 원한다면 ` QTextEdit`를 사용하고, 편집 기능을 비활성화하려면 ` QTextEdit::setReadOnly()`를 사용하십시오. 리치 텍스트의 일부만 표시해야 하는 경우에는 ` QLabel`를 사용하십시오.

문서 소스 및 내용

QTextEdit 의 내용은 setHtml() 또는 setPlainText()을 통해 설정되지만, QTextBrowser는 setSource() 함수도 구현하고 있어 이름이 지정된 문서를 소스 텍스트로 사용할 수 있습니다. 문서 이름은 검색 경로 목록과 현재 문서 팩토리의 디렉터리를 통해 조회됩니다.

문서 이름이 앵커로 끝나는 경우(예: "#anchor"), 텍스트 브라우저는 scrollToAnchor()을 사용하여 해당 위치로 자동으로 스크롤합니다. 사용자가 하이퍼링크를 클릭하면 브라우저는 링크의 href 값을 인수로 사용하여 setSource()을 직접 호출합니다. sourceChanged() 신호에 연결하여 현재 소스를 추적할 수 있습니다.

QTextBrowser는 backward() 및 forward() 슬롯을 제공하며, 이를 사용하여 ‘뒤로’ 및 ‘앞으로’ 버튼을 구현할 수 있습니다. home() 슬롯은 텍스트를 가장 처음 표시된 문서로 설정합니다. anchorClicked() 신호는 사용자가 앵커를 클릭할 때 발생합니다. 브라우저의 기본 탐색 동작을 재정의하려면, setSource() 함수를 호출하여 이 신호에 연결된 슬롯에서 새로운 문서 텍스트를 제공하십시오.

Qt 리소스 시스템에 저장된 문서를 로드하려면, 로드할 URL의 스키마로 qrc 를 사용하십시오. 예를 들어, 문서 리소스 경로가 :/docs/index.html 인 경우, setSource()을 호출할 때 URL로 qrc:/docs/index.html 를 사용하십시오.

QTextEdit 및 QTextDocument도 참조하십시오 .

속성 설명서

[read-only] modified : bool

이 속성은 텍스트 브라우저의 내용이 수정되었는지 여부와 관계없이 유지됩니다.

QTextBrowser 가 anchorClicked 신호를 발생시키는 대신 QDesktopServices::openUrl()을 사용하여 외부 소스로 연결되는 링크를 자동으로 열어야 하는지 여부를 지정합니다. 스키마가 file이나 qrc가 아닌 링크는 외부 링크로 간주됩니다.

기본값은 false입니다.

액세스 함수:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

이 속성은 사용자가 마우스나 키보드로 활성화하려는 링크를 ‘ QTextBrowser ’가 자동으로 열어야 하는지 여부를 지정합니다.

이 속성의 값과 관계없이 anchorClicked 신호는 항상 발생합니다.

기본값은 true입니다.

액세스 함수:

bool openLinks() const
void setOpenLinks(bool open)

readOnly : bool

이 속성은 텍스트 브라우저가 읽기 전용인지 여부를 나타냅니다.

기본적으로 이 속성의 값은 ` true`입니다.

searchPaths : QStringList

이 속성은 텍스트 브라우저가 보조 콘텐츠를 찾기 위해 사용하는 검색 경로를 저장하며,

QTextBrowser 텍스트 브라우저는 이 목록을 사용하여 이미지와 문서를 찾습니다.

기본적으로 이 속성에는 빈 문자열 목록이 포함됩니다.

액세스 함수:

QStringList searchPaths() const
void setSearchPaths(const QStringList &paths)

source : QUrl

이 속성은 표시된 문서의 이름을 포함합니다.

문서가 표시되지 않거나 소스가 알 수 없는 경우, 이 URL은 유효하지 않습니다.

이 속성을 설정할 때, QTextBrowser 은 값이 절대 파일 경로가 아닌 한, searchPaths 속성의 경로와 현재 소스의 디렉터리에서 지정된 이름의 문서를 찾으려고 시도합니다. 또한 선택적 앵커를 확인하고 그에 따라 문서를 스크롤합니다.

문서의 첫 번째 태그가 ` <qt type=detail>`인 경우, 문서는 브라우저 창 자체에 새 문서로 표시되는 대신 팝업으로 표시됩니다. 그렇지 않은 경우, 문서는 텍스트 브라우저에서 정상적으로 표시되며, 파일 이름이 알려진 마크다운 파일 확장자로 끝나는지 여부에 따라 ` QTextDocument::setHtml()` 또는 ` QTextDocument::setMarkdown()`를 통해 지정된 문서의 내용이 텍스트로 설정됩니다.

자동 유형 감지를 피하고 유형을 명시적으로 지정하려면, 이 속성을 설정하는 대신 setSource()을 호출하십시오.

기본적으로 이 속성에는 빈 URL이 포함됩니다.

액세스 함수:

QUrl source() const
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

[read-only] sourceType : QTextDocument::ResourceType

이 속성은 표시된 문서의 유형을 저장합니다.

문서가 표시되지 않거나 소스의 유형을 알 수 없는 경우, 이 속성의 값은 ` QTextDocument::UnknownResource `입니다. 그 외의 경우에는 감지된 유형이나 ` setSource()` 호출 시 지정된 유형이 저장됩니다.

액세스 함수:

QTextDocument::ResourceType sourceType() const

undoRedoEnabled : bool

이 속성은 텍스트 브라우저가 실행 취소/다시 실행 기능을 지원하는지 여부를 나타냅니다.

기본적으로 이 속성의 값은 ` false`입니다.

멤버 함수 설명서

[explicit] QTextBrowser::QTextBrowser(QWidget *parent = nullptr)

parent 를 부모로 하는 빈 QTextBrowser를 생성합니다.

[signal] void QTextBrowser::anchorClicked(const QUrl &link)

사용자가 앵커를 클릭하면 이 신호가 발생합니다. 앵커가 가리키는 URL은 ` link`에 전달됩니다.

openLinks 속성이 false로 설정되어 있거나, 연결된 슬롯에서 setSource()을 호출하지 않는 한, 브라우저는 link 로 지정된 위치로의 이동을 자동으로 처리합니다. 이 메커니즘은 브라우저의 기본 탐색 기능을 재정의하는 데 사용됩니다.

[virtual slot] void QTextBrowser::backward()

링크를 따라 이동하여 생성된 문서 목록에서 현재 표시된 문서를 이전 문서로 변경합니다. 이전 문서가 없는 경우에는 아무 작업도 수행하지 않습니다.

forward() 및 backwardAvailable()도 참조하십시오 .

[signal] void QTextBrowser::backwardAvailable(bool available)

이 신호는 backward()의 사용 가능 여부가 변경될 때 발생합니다. 사용자가 home()에 있을 때는 available 가 false이며, 그렇지 않은 경우에는 true입니다.

int QTextBrowser::backwardHistoryCount() const

기록에서 뒤로 거슬러 올라가는 위치의 수를 반환합니다.

void QTextBrowser::clearHistory()

방문한 문서의 기록을 삭제하고 앞/뒤로 이동 기능을 비활성화합니다.

backward() 및 forward()도 참조하십시오 .

[virtual protected] void QTextBrowser::doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

지정된 url 에서 지정된 type 를 사용하여 문서를 불러오려고 시도합니다.

setSource()는 doSetSource를 호출합니다. Qt 5에서는 setSource(const QUrl &url)이 가상 메서드였습니다. Qt 6에서는 대신 doSetSource()가 가상 메서드가 되어 하위 클래스에서 재정의할 수 있게 되었습니다.

[override virtual protected] bool QTextBrowser::event(QEvent *e)

QAbstractScrollArea::event(QEvent *event)를 재구현합니다.

[override virtual protected] bool QTextBrowser::focusNextPrevChild(bool next)

QTextEdit::focusNextPrevChild(bool next)를 재구현합니다.

[override virtual protected] void QTextBrowser::focusOutEvent(QFocusEvent *ev)

QTextEdit::focusOutEvent(QFocusEvent *e)를 재구현합니다.

[virtual slot] void QTextBrowser::forward()

링크를 따라 이동하여 생성된 문서 목록에서 현재 표시된 문서를 다음 문서로 변경합니다. 다음 문서가 없는 경우에는 아무 작업도 수행하지 않습니다.

backward() 및 forwardAvailable()도 참조하십시오 .

[signal] void QTextBrowser::forwardAvailable(bool available)

이 신호는 ‘ forward ’()의 가용성 상태가 변경될 때 발송됩니다. 사용자가 ‘ backward ’()로 이동한 후에는 ‘ available ’가 true가 되고, 사용자가 ‘ forward ’()로 이동하거나 해당 페이지를 닫으면 false가 됩니다.

int QTextBrowser::forwardHistoryCount() const

기록에서 앞으로 이동할 위치 수를 반환합니다.

[signal] void QTextBrowser::highlighted(const QUrl &link)

이 신호는 사용자가 문서 내의 앵커를 선택했으나 활성화하지는 않은 경우에 발생합니다. 해당 앵커가 가리키는 URL은 ` link`에 전달됩니다.

[signal] void QTextBrowser::historyChanged()

이 신호는 기록이 변경될 때 발생합니다.

historyTitle() 및 historyUrl()도 참조하십시오 .

QString QTextBrowser::historyTitle(int i) const

HistoryItem의 documentTitle()을 반환합니다.

입력반환
i < 0backward() 기록
i == 0현재, QTextBrowser::source() 참조
i > 0forward() 이력
backaction.setToolTip(browser.historyTitle(-1));
forwardaction.setToolTip(browser.historyTitle(+1));

QUrl QTextBrowser::historyUrl(int i) const

HistoryItem의 URL을 반환합니다.

입력반환
i < 0backward() history
i == 0현재, QTextBrowser::source() 참조
i > 0forward() 기록

[virtual slot] void QTextBrowser::home()

표시된 문서를 기록의 첫 번째 문서로 변경합니다.

bool QTextBrowser::isBackwardAvailable() const

텍스트 브라우저가 backward()를 사용하여 문서 기록을 뒤로 되돌릴 수 있는 경우 true 를 반환합니다.

backwardAvailable() 및 backward()도 참조하십시오 .

bool QTextBrowser::isForwardAvailable() const

텍스트 브라우저가 forward()을 사용하여 문서 기록을 앞으로 이동할 수 있는 경우 true 를 반환합니다.

forwardAvailable() 및 forward()도 참조하십시오 .

[override virtual protected] void QTextBrowser::keyPressEvent(QKeyEvent *ev)

QTextEdit::keyPressEvent(QKeyEvent *e)를 재구현합니다.

ev 이벤트는 다음 키보드 단축키를 제공하는 데 사용됩니다:

키 입력동작
Alt+왼쪽 화살표backward()
Alt+오른쪽 화살표forward()
Alt+위 화살표home()

[override virtual] QVariant QTextBrowser::loadResource(int type, const QUrl &name)

QTextEdit::loadResource(int type, const QUrl &name)를 재구현합니다.

이 함수는 문서가 로드될 때 및 문서 내의 각 이미지에 대해 호출됩니다. ` type `는 로드될 리소스의 유형을 나타냅니다. 리소스를 로드할 수 없는 경우 유효하지 않은 ` QVariant `가 반환됩니다.

기본 구현은 type 를 무시하고, name 를 파일 이름으로 해석하여 리소스의 위치를 찾으려고 시도합니다. 절대 경로가 아닌 경우, searchPaths 속성의 경로와 현재 소스 파일과 동일한 디렉터리에서 파일을 찾으려고 시도합니다. 성공하면, 파일의 내용을 담은 QByteArray 를 저장하는 QVariant 가 반환됩니다.

이 함수를 재구현하는 경우, 다른 QVariant 유형을 반환할 수 있습니다. 아래 표는 리소스 유형에 따라 지원되는 변형 유형을 보여줍니다:

[override virtual protected] void QTextBrowser::mouseMoveEvent(QMouseEvent *e)

QTextEdit::mouseMoveEvent(QMouseEvent *e)를 재구현합니다.

[override virtual protected] void QTextBrowser::mousePressEvent(QMouseEvent *e)

QTextEdit::mousePressEvent(QMouseEvent *e)를 재구현합니다.

[override virtual protected] void QTextBrowser::mouseReleaseEvent(QMouseEvent *e)

QTextEdit::mouseReleaseEvent(QMouseEvent *e)를 재구현합니다.

[override virtual protected] void QTextBrowser::paintEvent(QPaintEvent *e)

QTextEdit::paintEvent(QPaintEvent *event)을 재구현합니다.

[virtual slot] void QTextBrowser::reload()

현재 설정된 소스를 다시 불러옵니다.

[slot] void QTextBrowser::setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

지정된 type 를 사용하여 url 에 있는 문서를 불러오려고 시도합니다.

type 가 UnknownResource (기본값)인 경우, 문서 유형이 자동으로 감지됩니다. 즉, URL이 .md, .mkd 또는 .markdown 확장자로 끝나는 경우 문서는 QTextDocument::setMarkdown()를 통해 로드되며, 그렇지 않은 경우 QTextDocument::setHtml()를 통해 로드됩니다. 이 감지 기능을 우회하려면 type 을 명시적으로 지정하면 됩니다.

참고: source 속성에 대한세터 함수입니다.

source()도 참조하십시오 .

[signal] void QTextBrowser::sourceChanged(const QUrl &src)

이 신호는 소스가 변경되었을 때 발생하며, src 이 새로운 소스입니다.

소스 변경은 setSource(), forward(), backward() 또는 home()을 호출하는 프로그래밍 방식의 경우뿐만 아니라, 사용자가 링크를 클릭하거나 이에 상응하는 키 조합을 누를 때에도 발생합니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.