fol*_*bis 5 qt rich-text-editor qml qtquick2
是否可以仅使用QML组件创建简单的RTF编辑器?
我现在正在尝试这样做,TextArea
但是它似乎无法处理格式化的文本。当然,我可以做这样的事情:
ToolButton {
text: "Bold"
onClicked: {
var start = textArea.selectionStart;
var end = textArea.selectionEnd;
var text = textArea.getText(start,end);
text = "<strong>" + text + "</strong>";
textArea.remove(start,end);
textArea.insert(start,text);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我仍然无法检测光标下的文本格式。
如果有人可以共享一些代码片段或其他内容,我会感到很高兴。
任何建议将被认真考虑。
您正在寻找的是TextEdit组件:
http://qt-project.org/doc/qt-5/qml-qtquick-textedit.html
使用它,仅用QML实现富文本编辑器应该不难
QtQuick TextEdit 和 Qt 5.2 或更高版本中的扩展 QtQuick.Controls TextArea 公开了 'textDocument' 属性,它是一个 QQuickTextDocument 指针,它又可以转换为 QTextDocument (是的,与 QWidgets 中相同)并且可以使用C++ 端从 TextEdit 获取信息,例如光标位置和当前块格式...
然而,对于简单的编辑(没有检索到信息),QML 端的纯 JS 就足够了(只需修改文本属性以使用例如 RegExp... 插入 HTML 标签)。