2014-02-07 27 views
0

修訂--->如何設置qt二進制/ html的路徑來從HTML使用JavaScript調用QINVOKABLE函數?

基於此輸入,我已經開始探索提到的網站上的例子的旅程 - http://qt.developpez.com/doc/4.7/qtwebkit-bridge/

我想了解瘦客戶機模式 - 即我要打電話來自java腳本的QT函數。我在我的機器上使用FC16。

建立在QT Creator之後,我得到以下問題 - 這是一個控制檯應用程序。

#include <QCoreApplication> 
#include <QWebElement> 

class MyObject : QObject { 
     Q_OBJECT 

    public slots: 
     void doSomethingWithWebElement(const QWebElement&); 
    }; 

    /* ... */ 


int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    MyObject myObject; 
    myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject); 


    return a.exec(); 
} 

/home/joshis1/Demo_JS/main.cpp:2: error: QWebElement: No such file or directory 
#include <QWebElement> 
        ^

我不知道接下來要做什麼。接下來的部分是做到以下幾點 -

HTML:

<html> 
     <head> 
      <script> 
       function runExample() { 
       myObject.doSomethingWithWebElement(document.getElementById("someElement")); 
       } 
     </script> 
     </head> 
     <body onload="runExample()"> 
      <span id="someElement">Text</span> 
     </body> 
    </html> 

我真的不知道,如何解決這個錯誤。我在我的fedora核心機器上使用QT 3.0.0。我腦海中的下一個問題是,Javascript如何調用我的函數。這裏應該是什麼路徑設置?有人可以用一個很好的例子來解釋嗎?

我已經使用QT-Creator實現了一個小型控制檯應用程序。這是文件。

shreyas.html 

<html> 
<head> 
<script> 

var results; 
function pi_calculate() 
{ 
     results = get_string_from_qt();  
     document.write(var); 

} 


</script> 
    </head> 

在QT,我已經做了一個小型控制檯應用程序,並已宣佈的功能QINVOKABLE。

QINVOKABLE QString Hello::get_string_from_qt() 
{ 
    return "I am QT"; 
} 

我該怎麼做?我需要設置什麼路徑才能調用該函數?我想基本上鍊接我的JavaScript與QT二進制文件。因此,我將能夠從HTML調用C++函數。我是QT的新手。我會很感激一個例子。

回答

0

我得到一個印象,你認爲你可以從外部瀏覽器實例進行調用。它不這樣工作。您只能從在同一應用程序中運行的Webkit中調用QObject的可調用方法。這是因爲Webkit的JavaScript引擎被修改爲與Qt和QObject集成。

你想知道的一切都在QtWebKit Bridge documentation

有一個完整的Qt安裝教程項目。啓動Qt Creator,在歡迎界面進入例子,在搜索框中輸入webkit bridge,打開項目,編譯並運行。

如果您想使用第三方瀏覽器,則必須將您的應用程序轉換爲Web服務服務器。然後,在第三方瀏覽器中運行的JavaScript可以在基於Qt的本地主機服務器上執行Web服務請求。

在實現這一點,注意,整個127.x.x.x地址塊是可用的,而且你肯定不需要使用127.0.0.1作爲您的服務器的IP。它可以,例如,127.8.9.10 :)

+0

@SHREYASJOSHI ?? ??啓動Qt Creator,在歡迎屏幕上轉到示例,在搜索框中鍵入'webkit bridge',打開項目,編譯並運行。沒有比這更簡單的了。 –

+0

@SHREYASJOSHI Qt創建者的示例屏幕應該是*之前*的任何其他地方的起點。 –

+0

對不起,我無法移動文檔的任何地方。不知道如何設置路徑,以便我的JavaScript知道拾取我的qt函數。 –