2010-02-03 117 views
3

我想在我純粹的c windows GUI應用程序中嵌入qtwebkit。如何在非qt窗口應用程序中嵌入qtwebkit?

是否有任何示例,如何做到這一點的代碼示例,或者它是不可能的?我知道在QT應用程序中很容易做到,但我想保持我的開發(使用免費的C編譯器編譯)。

(谷歌搜索幾天沒有任何運氣)。

回答

2

從QT4開始,所有Widget都需要初始化並運行 QApplication對象 - 調度OS事件和保持QT小部件運行所需的AND QT事件。

看起來可能會創建一個自定義的子類QApplication,它將被實例化(爲了QWebKit或其他小部件),以便單例存在,然後從應用程序消息循環中調用它 - 或者即使只是一個計時器發送到您的窗口 - 並獲得它派遣其排隊的任何QEvent。

我沒有帶試過,但我也有類似的需要在現有的Windows應用程序使用的WebKit,它似乎是QWebKit,或this thing

+0

以及多數民衆贊成我有點試圖做...有看看這個:http://www.qtforum.org/article/31506/embed-qwebview-into-win32-window-whole-window.html?highlight=(注意我不是一個好的程序員:-( – sonu 2010-02-04 20:51:53

+0

你的問題在QWinWidget沒有setCentralWidget方法的情況下,QWinWidget的唯一好處是作爲另一個Widget的父節點 因此,QWinWidget * win = new QWinWidget(parent); QWebView * web =新的QWebView(win); sho üld讓你的webview託管在一個窗口窗口 – 2010-02-04 21:48:08

+0

好吧,我做到了,但現在的問題是,因爲我正在創建一個小部件,我需要在DLL中創建一個QApplication實例。問題在於它阻止了Windows主機應用程序工作原因QApplication啓動它自己的消息循環。任何幫助?謝謝。 – sonu 2010-02-08 02:51:26

0

構建自己使用ActiveQt可ActiveX控件。這很容易。然後嵌入。 Qt甚至知道如何將IDispatch對象拉入到它的元對象系統中,這又可以讓你將它們暴露給你的javascript上下文。這真的很光滑。

我在我目前的項目中正是這樣做的。我會盡力開源,以挽救其他人的工作,但這不太可能。

+0

我很確定你說使用activeQT你可以嵌入Microsoft Internet Explorer?對?不用了,謝謝。這意味着IE必須安裝在用戶計算機上,或者用戶必須安裝它。使用wxWebConnect你分發整個壁虎包,它不需要安裝! – sonu 2010-02-10 02:46:24

0

你可以考慮http://www.twotoasts.de/index.php?/pages/midori_summary.html 它是純C的網頁瀏覽器,你有什麼使用的WebKit(不QtWebKit的) 也許,它可能是有益的你)

+0

是的,這相當不錯,但它沒有像wxWebConnect控件那樣穩定。例如,嘗試在midori中打開Gmail或YouTube。 – sonu 2010-02-19 09:41:21

相關問題