Qt의 설명서는 QWebChannel을 설치하는 방법이며, 설명서에 권장 된 것처럼 <script>
태그를 HTML 페이지에 추가하는 것과는 다른 방법입니까?QWebEngineView에서 사용할 QWebChannel JS API를 설정하는 방법은 무엇입니까?
1
A
답변
4
다른 옵션은 URL qrc:///qtwebchannel/qwebchannel.js
에 필요한 스크립트 액세스로드 할 수 있습니다
주의 사항 : QWebEngineView 내에서 페이지를보고있는 경우에만 해당 URL을 사용할 수 있습니다
- . 그렇지 않으면 웹 서버에 API 파일을로드해야 할 수 있습니다.
전제 조건 :
- 당신의
.pro
파일에QT += webchannel
을 추가하고 Qt의 QWebChannel JS API의 코드를 실행할 수runJavaScript()
를 사용qmake
을 실행
내 선호되는 방법 왜냐하면 그것은 단순 해 보이고 지금까지 믿을만했기 때문입니다. runJavaScript()
메서드는 JS 코드가 실행될 때까지 현재 스레드를 차단하지 않으므로이 코드가 완료 될 때까지 API가 설정되지 않을 수 있습니다.
QFile apiFile(":/qtwebchannel/qwebchannel.js"); //load the API from the resources
if(!apiFile.open(QIODevice::ReadOnly))
qDebug()<<"Couldn't load Qt's QWebChannel API!";
QString apiScript = QString::fromLatin1(apiFile.readAll());
apiFile.close();
QWebEngineView view; //your custom QWebEngineView
view.page().runJavaScript(apiScript);
Qt의 QWebChannel JS API를로드하는 코드를 실행 runJavaScript()
사용 :
나는 그들이 외부 JS 파일을로드하는 것을 목표로 그들은 여전히 작동한다 이러한 방법을 시도하지 않았지만. 제안 된 방법 중 하나는 사용하는 다른 라이브러리에 따라 편리하게 사용할 수 있습니다.
이 Qt의 문서에서 권장하는 기본 방법입니다 : 웹 페이지에서 <script>
태그를 사용
. 페이지가로드 된 후 바로 API를 제공한다는 이점이 있습니다. 사이트의 소유자가 아닌 경우 고통 스러울 수있는 웹 페이지의 HTML을 수정해야한다는 단점이 있습니다.
는 C++ 측에 QWebChannel 객체를 생성 잊지 마세요 :
QWebChannel* channel_ = new QWebChannel(view.page());
//attach it to the QWebEnginePage
view.page()->setWebChannel(channel_);
//register a QObject to be exposed to JavaScript
channel_->registerObject(QStringLiteral("jshelper"), this);
이 답변은 Qt의 문서에 추가로 생각, 그래서 당신이 뭔가를 추가하려면 주시기했다 그렇게해라.
버전 : Qt 5.6.1
출처 :
관련 문제
- 1. PayPal의 Rest API를 사용할 때 배송비를 설정하는 방법은 무엇입니까?
- 2. 레일 컨트롤러에서 js var를 설정하는 방법은 무엇입니까?
- 3. docx4j api를 사용하여 linespacing을 설정하는 방법은 무엇입니까?
- 4. JS 콘텐츠로 평가할 개체를 설정하는 방법은 무엇입니까?
- 5. js-ctypes에서 gecko api를 사용할 수 있습니까?
- 6. android에서 Google 드라이브 API를 설정하는 방법은 무엇인가요?
- 7. 코코스 작성기에 외부 js API를 두는 방법은 무엇입니까?
- 8. PHP에서 사용할 셸을 설정하는 방법은 무엇입니까?
- 9. CKEditor에서 사용할 이미지의 경로를 설정하는 방법은 무엇입니까?
- 10. JS : for 루프에서 간격을 지연 또는 설정하는 방법은 무엇입니까?
- 11. EWS API를 사용하여 스팸 이메일을 설정하는 방법은 무엇입니까?
- 12. 두 js 함수 사이의 지연을 설정하는 방법은 무엇입니까?
- 13. FlexPrintJob 또는 PrintJob을 사용할 때 인쇄 방향을 설정하는 방법은 무엇입니까?
- 14. WinSpool API를 사용하여 용지 크기를 설정하는 방법은 무엇입니까?
- 15. Netty를 설정하는 방법은 무엇입니까?
- 16. JS Datastore API를 사용하여 recordsChanged 동기화 상태를 얻는 방법은 무엇입니까?
- 17. 단위 테스트를 위해 창/탐색기 JS API를 제거하는 방법은 무엇입니까?
- 18. QT의 API를 사용하여 시스템 밝기를 설정하는 방법은 무엇입니까?
- 19. facebook api를 사용하여 Facebook 게시글에 아이콘을 설정하는 방법은 무엇입니까?
- 20. REST API를 사용하여 DocuSign에서 수신자에 대한 clientUserId를 설정하는 방법은 무엇입니까?
- 21. Google Speech-to-text API를 설정하는 방법은 무엇입니까?
- 22. 자동화 API를 통해 MS Word 페이지 크기를 설정하는 방법은 무엇입니까?
- 23. Google 시각화 API를 사용하여 다양한 값의 배경을 설정하는 방법은 무엇입니까?
- 24. API를 사용하여 Trello 맞춤 필드를 가져 오거나 설정하는 방법은 무엇입니까?
- 25. Infusionsoft에서 API를 통해 업로드 된 파일을 공용으로 설정하는 방법은 무엇입니까?
- 26. JS API를 통해 reRender
- 27. MessageDigest 시드를 설정하는 방법은 무엇입니까?
- 28. jQuery .html()을 사용할 때 기본 출력을 설정하는 방법은 무엇입니까?
- 29. Ember js DS.FixtureAdapter를 사용하여 컨트롤러의 모델을 설정하는 방법은 무엇입니까?
- 30. Sails JS & Skipper에서 S3 캐싱을 설정하는 방법은 무엇입니까?