2013-07-25 2 views
2

블로그 게시물 편집기를 구현하기 위해 QWebView을 사용하려고합니다. 그리고 메뉴 작업을 트리거하여 편집기에 삽입 할 샘플 HTML 스 니펫 예제가 있습니다. 그러나, html을 삽입하는 것은 QTextEdit과 같이 편리하지 않습니다. 내가 QWebView를 사용하는 경우
Qt 커서 위치에서 편집 가능한 QWebView에 html을 삽입하는 방법은 무엇입니까?

QTextEdit *edit = new QTextEdit; 
edit->insertHtml(tr("<div class=\"gci-hello\">Hello</div>")); 
qDebug() << edit->toHtml(); // --> the div tag disappeared 

그래서, div 태그가 할당되어 있습니다 : 나는 QTextEdit를 사용하지 않는 이유에 관해서는, 내 테스트 코드는 다음을 참조하십시오. 그러나 뷰에서 커서 위치에 스 니펫을 삽입하는 방법을 찾을 수 없습니다. InsertHTML

답변

2

사용 execCommand :

QString html = "<div>Some text</div>"; 
QString js = QString("document.execCommand('InsertHTML',false,'%1');").arg(html); 
webview->page()->mainFrame()->evaluateJavaScript(js); 

그리고 HTML 코드에서 작은 따옴표 문자가있는 경우, 스 니펫은 JS 문자열을 통해 주입 한 이후, 백 슬래시로 인용해야합니다

.

+0

답장을 보내 주신다면 완벽하게 작동합니다. :) – Ggicci