Qt에서 QtWebKit 브라우저에서 실행되는 JavaScript에 C++ 객체/함수를 노출 할 수있는 방법이 있습니까? Adobe AIR의 WebKit 브라우저에서 실행되는 JS 코드에 ActionScript 객체를 노출 할 수 있습니다. Qt에서 비슷한 기능을 찾고 있습니다.Qt에서 자바 스크립트에 C++ 객체 노출
답변
예. this.에서 시작하십시오. 좋은 시작이어야합니다.
편집 : 링크가 작동하지만, 단지의 경우 링크가
하나의 질문은 내가 #qt 및 QT-관심이 여러 번 생각해 본 적이 ... 리처드 무어 다시 [Link] 나누기 how to QtWebKit에 기본적으로 사용 가능한 API에 사용자 지정 (응용 프로그램 관련) API를 추가하십시오. 이것은 아래에 을 표시하므로 실제로는 꽤 쉽습니다 (일단 알고 있다면). 이 게시물은 객체에서 메소드를 호출하고 C++에서 값 을 반환하는 것을 포함하여 자바 스크립트에서 객체를 사용 가능하게 만드는 방법에 대한 간단한 예제를 보여줍니다.
가장 먼저 QWebFrame의 addToJavaScriptWindowObject() 메소드, 당신은 정말이 통합을 수행하기 위해 알아야 할 두 가지가 있으며,이 자바 스크립트에서 지정된 QObject를 볼 수있게됩니다 수 있습니다. 두 번째로 알아야 할 점은 에 게시 된 객체가 자바 스크립트 창 객체가 지워질 때마다 사라지게된다는 것입니다 ( ). 사용자가 새 페이지로 이동할 때마다 이로 인해 문제가 발생하지 않도록 QWebFrame은 객체가 으로 지워질 때마다 사용자 정의 API를 다시 추가 할 수 있음을 알려주는 신호를 제공합니다. 실제로는 훨씬 더 간단합니다. !
이것의 핵심은 정말 예에서는 두 가지 방법으로 구현되어, 그들은 다음과 같이 있어 :
void MyApi::setWebView(QWebView *view)
{
QWebPage *page = view->page();
frame = page->mainFrame();
attachObject();
connect(frame, SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(attachObject()));
}
void MyApi::attachObject()
{
frame->addToJavaScriptWindowObject(QString("MyApi"), this);
}
이 코드는 모두를 만들기 위해 당신은 위해 필요한 모든입니다 MyApi 개체의 공개 슬롯이 자바 스크립트에 표시됩니다. MyApi 클래스는 두 개의 공용 슬롯 제공 : (! 예, 슬롯 물건을 반환 할 수 있습니다)
public slots:
void doSomething(const QString ¶m);
int doSums(int a, int b);
가 첫 번째 슬롯은 단순히 디버그 출력에 메시지를 기록을, 두 번째 반환 두 개의 인수 합 .
MyApi.doSomething('Hello from JS page 2!!!!');
sum = MyApi.doSums(2, 3);
alert('C++ says the sum is ' + sum);
을 그리고 그게 전부입니다 : 그들은이 같은 자바 스크립트에서 라고있어! >http://xmelegance.org/devel/qtwebkitextension.tar.gz에서 코드를 다운로드 할 수 있습니다.
이 예제는 불행히도 QT5에서는 작동하지 않습니다. 업데이트 할 기회가 있습니까? 아니면 다른 질문을 열어야합니까? – Alex
- 1. 자바 스크립트에 래퍼 객체 작성
- 2. 객체 지향 자바 스크립트에 대한 혼동
- 3. 자바 스크립트에
- 4. 배열을 Tapestry의 자바 스크립트에 전달
- 5. 자바 스크립트에 어떤 문제가 있습니까? (C#/ASP.NET)
- 6. 자바 스크립트에 속성이있는 함수가 있습니까?
- 7. 자바 스크립트에 VBScript 전달
- 8. 자바 스크립트에 추가
- 9. 자바 스크립트에 권한을 적용하십시오.
- 10. 쿼드 트리 자바 스크립트에
- 11. 자바 스크립트에 배열
- 12. 자바 스크립트에 getElementsByClassName이 있습니까?
- 13. 자바 스크립트에 포커스가 없습니다.
- 14. 자바 스크립트에 대한 북마크
- 15. 자바 스크립트에 appendChild()
- 16. 자바 스크립트에 글꼴 포함
- 17. 자바 객체 클래스에서 C++로
- 18. C# 개체를 Lua 스크립팅에 노출
- 19. 초보자를위한 자바 스크립트에 대한 과제?
- 20. 노출 및 C#
- 21. 오늘 날짜를 자바 스크립트에 삽입
- 22. 자바 스크립트에 의한 워드 디코더?
- 23. 자바 스크립트에 가로선을 추가하는 방법
- 24. 파이 차트가 자바 스크립트에 있습니까?
- 25. 자바 스크립트에 대한 코다 질문
- 26. div를 자바 스크립트에 표시하려면 어떻게해야합니까?
- 27. 자바 스크립트에 어떤 문제가 있습니까?
- 28. 자바 스크립트에 VIM omnicomplete를 사용하십시오.
- 29. 자바 스크립트에 공백이있는 문자열 전달
- 30. 노드가 자바 스크립트에 있는지 확인하십시오.
정보 주셔서 감사합니다! – BlueSilver