我正在尝试使用QWebView
来实现博客文章编辑器。我有一些示例html片段通过触发菜单操作插入编辑器。但是,QTextEdit
插入html并不方便。至于为什么我不使用QTextEdit
,请参阅以下测试代码:
QTextEdit *edit = new QTextEdit;
edit->insertHtml(tr("<div class=\"gci-hello\">Hello</div>"));
qDebug() << edit->toHtml(); // --> the div tag disappeared
因此,如果我使用QWebView,div标签将被保留。但我无法找到如何在视图上的光标位置插入我的代码段。
答案 0 :(得分:2)
将execCommand
与InsertHTML
:
QString html = "<div>Some text</div>";
QString js = QString("document.execCommand('InsertHTML',false,'%1');").arg(html);
webview->page()->mainFrame()->evaluateJavaScript(js);
如果HTML代码段中有单引号字符,请确保使用反斜杠引用它们,因为代码段是通过JS字符串注入的。