HTML 안에 테이블이 있습니다. QWebView에 제출하고 있습니다.QWebView에 대한 심각한 제한
테이블은 응용 프로그램의 수명주기 동안 커집니다.
측면의 html QString을 관리하고 모든 업데이트에 "setHtml"을 사용하면 테이블에 1000 개의 행을 추가하는 데 성능 문제가 발생합니다.
QWebView에서 직접 HTML에 액세스하여 매번 새 테이블 행을 삽입하여 html을 직접 업데이트 할 수있는 방법이 없습니까?
HTML 안에 테이블이 있습니다. QWebView에 제출하고 있습니다.QWebView에 대한 심각한 제한
테이블은 응용 프로그램의 수명주기 동안 커집니다.
측면의 html QString을 관리하고 모든 업데이트에 "setHtml"을 사용하면 테이블에 1000 개의 행을 추가하는 데 성능 문제가 발생합니다.
QWebView에서 직접 HTML에 액세스하여 매번 새 테이블 행을 삽입하여 html을 직접 업데이트 할 수있는 방법이 없습니까?
나는 당신이 원하는 것은 가장 낮은 레벨의 객체 인 QWebFrame과 상호 작용하는 것이라고 믿습니다. 다음을 통해 액세스 할 수 있습니다. QWebView->page()->mainFrame()
QWebFrame
에서 evaluateJavaScript()
을 사용하여 페이지에 미리보기를 보내기 만하면됩니다.
또는 Qt 코드와 자바 스크립트 페이지 사이를 연결하는 addToJavaScriptWindowObject
을 사용하여 프레임에 QObject를 등록 할 수 있습니다. more in detail here을 읽을 수 있습니다. 그러나이 방법은 자바 스크립트 쪽에서 함수를 "슬롯"으로 정의하고 QObject에 정의 된 신호 (예 : updateTable()
)에 연결하게합니다. 그런 다음 Qt 측에서 무언가를하고 해당 신호로 데이터를 내보낼 때마다 자바 스크립트가이를 잡아서 처리합니다.
Qt는
QWebFrame *frame = myWebPage->mainFrame();
frame->addToJavaScriptWindowObject("tableHandler", tableHandlerObject);
에 javscript에게
function handleTableUpdate() { ... }
...
tableHandler.updateReady.connect(handleTableUpdate);
내가 자바 스크립트를 사용해야합니까? 그냥 새 테이블 행을 삽입하는 자바 스크립트 함수를 호출? Qt에서 QWebView에서 자바 스크립트 함수를 호출 할 수 있습니까? – JasonGenX