Spec-Zone.ru › Qt

Класс QTextBrowser

Класс QTextBrowser предоставляет богатый текстовый браузер с навигацией по гиперссылкам. Подробнее...

Заголовок: #include <QTextBrowser>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QTextEdit
  • Список всех членов, включая унаследованные

Свойства

  • modified : const bool
  • openExternalLinks : bool
  • openLinks : bool
  • readOnly : const bool
  • searchPaths : QStringList
  • source : QUrl
  • sourceType : const QTextDocument::ResourceType
  • undoRedoEnabled : const bool

Публичные функции

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()). Когда пользователь щелкает по гиперссылке, браузер сам вызовет setSource() со значением href ссылки в качестве аргумента. Вы можете отслеживать текущий источник, подключившись к сигналу sourceChanged().

Навигация

QTextBrowser предоставляет слоты backward() и forward(), которые можно использовать для реализации кнопок «Назад» и «Вперёд». Слоты home() устанавливают текст первого отображаемого документа. Сигнал anchorClicked() генерируется при нажатии пользователем на ссылку. Чтобы переопределить поведение по умолчанию при навигации в браузере, вызовите функцию setSource() для предоставления нового текста документа в слоте, подключённом к этому сигналу.

Если вы хотите загрузить документы, хранящиеся в системе ресурсов Qt, используйте qrc в качестве схемы в URL для загрузки. Например, для пути ресурса документа :/docs/index.html используйте qrc:/docs/index.html в качестве URL с setSource().

См. также QTextEdit и QTextDocument.

Документация по свойствам

[read-only] modified : const bool

Это свойство указывает, были ли изменены содержимое текстового браузера.

openExternalLinks : bool

Указывает, должен ли QTextBrowser автоматически открывать ссылки на внешние источники с помощью QDesktopServices::openUrl() вместо генерации сигнала anchorClicked. Ссылки считаются внешними, если их схема не является file или qrc.

Значение по умолчанию — false.

Функции доступа:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

openLinks : bool

Это свойство определяет, должен ли QTextBrowser автоматически открывать ссылки, которые пользователь пытается активировать с помощью мыши или клавиатуры.

Независимо от значения этого свойства сигнал anchorClicked всегда генерируется.

Значение по умолчанию — true.

Функции доступа:

bool openLinks() const
void setOpenLinks(bool open)

readOnly : const 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(), в зависимости от того, оканчивается ли имя файла на какой-либо из известных расширений Markdown.

Если вы хотите избежать автоматического определения типа и явно указать тип, вызовите setSource(), а не установите это свойство.

По умолчанию это свойство содержит пустой URL.

Функции доступа:

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

[read-only] sourceType : const QTextDocument::ResourceType

Это свойство содержит тип отображаемого документа.

Это QTextDocument::UnknownResource, если документ не отображается или тип источника неизвестен. В противном случае оно содержит обнаруженный тип или тип, указанный при вызове setSource().

Функции доступа:

QTextDocument::ResourceType sourceType() const

undoRedoEnabled : const bool

Это свойство указывает, поддерживает ли текстовый браузер операции отмены/повтора.

По умолчанию это свойство false.

Документация по функциям-членам

QTextBrowser::QTextBrowser(QWidget *parent = nullptr)

Создаёт пустой QTextBrowser с родителем parent.

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

Этот сигнал генерируется при нажатии пользователем на ссылку. URL, на который указывает ссылка, передаётся в link.

Обратите внимание, что браузер автоматически обработает навигацию к месту, указанному в link, если свойство openLinks не установлено в false, или если вы вызываете setSource() в подключённом слоте. Этот механизм используется для переопределения функций навигации браузера по умолчанию.

[virtual slot] void QTextBrowser::backward()

Изменяет отображаемый документ на предыдущий документ в списке документов, созданном при навигации по ссылкам. Ничего не делает, если предыдущего документа нет.

См. также forward() и backwardAvailable().

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

Этот сигнал генерируется при изменении доступности backward(). available — false, когда пользователь находится на home; в противном случае — true.

[virtual slot] void QTextBrowser::forward()

Изменяет отображаемый документ на следующий документ в списке документов, созданном при навигации по ссылкам. Ничего не делает, если следующего документа нет.

См. также backward() и forwardAvailable().

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

Этот сигнал генерируется при изменении доступности forward(). available — true после навигации backward() и false, когда пользователь переходит или выполняет forward().

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

Этот сигнал генерируется при выборе пользователем ссылки, но не её активации в документе. URL, на который указывает ссылка, передаётся в link.

[signal] void QTextBrowser::historyChanged()

Этот сигнал генерируется при изменении истории.

См. также historyTitle() и historyUrl().

[virtual slot] void QTextBrowser::home()

Изменяет отображаемый документ на первый документ из истории.

[virtual slot] void QTextBrowser::reload()

Перезагружает текущий заданный источник.

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

Пытается загрузить документ по указанному url с заданным type.

Если 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(), так и при нажатии пользователем на ссылки или эквивалентных сочетаниях клавиш.

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).

int QTextBrowser::forwardHistoryCount() const

Возвращает количество расположений вперёд в истории.

QString QTextBrowser::historyTitle(int i) const

Возвращает documentTitle() элемента истории.

Входные данные Возврат
i < 0 история backward()
i == 0 текущий, см. QTextBrowser::source()
i > 0 история forward()
backaction.setToolTip(browser.historyTitle(-1));
forwardaction.setToolTip(browser.historyTitle(+1));

QUrl QTextBrowser::historyUrl(int i) const

Возвращает URL элемента истории.

Входные данные Возврат
i < 0 история backward()
i == 0 текущий, см. QTextBrowser::source()
i > 0 история forward()

bool QTextBrowser::isBackwardAvailable() const

Возвращает true если текстовый браузер может вернуться назад в истории документов с помощью backward().

См. также backwardAvailable() и backward().

bool QTextBrowser::isForwardAvailable() const

Возвращает true если текстовый браузер может перейти вперёд в истории документов с помощью forward().

См. также 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 и в той же директории, что и текущий источник. При успехе результат — QVariant, хранящий QByteArray с содержимым файла.

Если вы переопределите эту функцию, вы можете вернуть другие типы QVariant. Ниже представлена таблица поддерживаемых типов в зависимости от типа ресурса:

ResourceType QMetaType::Type
QTextDocument::HtmlResource QString или QByteArray
QTextDocument::ImageResource QImage, QPixmap или QByteArray
QTextDocument::StyleSheetResource QString или QByteArray
QTextDocument::MarkdownResource QString или QByteArray

[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).

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtextbrowser.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API