В качестве более продвинутого решения вы можете манипулировать контентом TextArea
с помощью https://doc.qt.io/qt-5/qtextdocument.html QTextDocument
. Оригинальный текстовый документ доступен через это свойство https://doc.qt.io/qt-5/qml-qtquick-textedit.html#textDocument -prop . С этого момента вы можете назначить собственную подсветку синтаксиса. Но это требует исследования с вашей стороны.
С другой стороны, вы можете проверить этот пример https://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html и, используя этот класс https://doc.qt.io/qt-5/qsyntaxhighlighter.html, вы можете назначить существующие QTextDocument
до QSyntaxHighlighter
. То же самое, я думаю, может быть использовано для элемента QML TextArea
.
Поскольку TextArea
имеет свойство textDocument
, возможно, потребуется повторно реализовать его для QtQuick Constrols.
честно говоря, я никогда не сталкивался с такой задачей, но этот пример выглядит довольно полезным для таких случаев. Вероятно, вам следует придерживаться опции форматированного текста, предложенной в комментариях, если вам не нужны расширенные функции (например, изменения содержимого в реальном времени).