青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-3  評論-13  文章-10  trackbacks-0
在QT里面,我們可以很方便地調用QtWebKit類庫,來實現一個瀏覽器的開發
基于Html的界面在開發效率,可移植性上都十分有優勢,所以也被很多程序采用,只是我們平時沒注意到而已

下面先說一下,如何創建一個簡易的瀏覽器
通過VS2008+QTSDK,創建一個qt4 GUI工程:

記住,一定要選上QtWebKit和QNetwork(這個后面要用到)...

寫如下一段代碼,一個瀏覽器就做成了:
main.cpp
 1#include <QtGui/QApplication>
 2#include <QWebView>
 3#include <QMainWindow>
 4
 5int main(int argc, char *argv[])
 6{
 7    QApplication a(argc, argv);
 8    QMainWindow window;
 9    QWebView view(&window);
10    view.setGeometry(00600400);
11    view.setUrl(QUrl("http://m.shnenglu.com/boymaster"));
12    window.show();
13    return a.exec();
14}

15
QWebView有兩種方法可以用來設定要顯示的內容,一個是setUrl方法,一個是setContent方法。 這個很簡單,試一下就會,不多說了

進入正題了,接下來介紹一下,如何實現js與C++的雙向調用
這里,僅介紹開發中用到的一種調用方式, 用QWebFrame的addToJavaScriptWindowObject方法
個人比較推薦這種方式,易為理解~~~

1. JS如何調用C++函數,詳見代碼~~~
myobject.h
 1#ifndef MYOBJECT_H
 2#define MYOBJECT_H
 3
 4#include<QObject>
 5#include<QWebPage>
 6#include<QWebFrame>
 7
 8// !! ATTENTION !! : The object do NOT need to inherit from QWidget anymore.
 9class MyObject :public QObject {
10    Q_OBJECT
11private:
12    QWebPage *page;
13public:
14    MyObject(QWebPage *page) : page(page) { }
15public slots:
16    void func(QString arg) {
17        this->page->mainFrame()->evaluateJavaScript("document.body.innerHTML += '" + arg + "';");
18    }

19}
;
20
21#endif // MYOBJECT_H
22

main.cpp
 1#include <QtGui/QApplication>
 2#include <QMainWindow>
 3#include <QWebView>
 4#include <QWebPage>
 5#include <QWebFrame>
 6#include "MyObject.h"
 7
 8int main(int argc, char *argv[])
 9{
10    QApplication a(argc, argv);
11    QMainWindow window;
12    QWebView view(&window);
13    QWebPage page;
14    view.setPage(&page);
15    view.setGeometry(00600400);
16    MyObject obj(&page);
17    page.mainFrame()->addToJavaScriptWindowObject("qt"&obj);
18    QString content("<script>function f() { qt.func('http://m.shnenglu.com/boymaster'); }</script>");
19    content += "<a href='javascript:f()'>Click Me</a>";
20    view.setContent(content.toAscii());
21    window.show();
22
23    return a.exec();
24}

25
這樣,當點擊頁面上的"Click Me",script腳本用會調用到C++中的func函數~~~

2.C++調用JS腳本
myobject.h
 1class MyObject :public QObject {
 2    Q_OBJECT
 3
 4private:
 5    QWebPage *page;
 6    QTimer *timer;
 7
 8public:
 9    MyObject(QWebPage *page) : page(page) {
10        timer = new QTimer;
11        connect(timer, SIGNAL(timeout()), this, SLOT(slotTimerOut()));
12        timer->start(1000);
13    }

14
15signals:
16    void signalObjTimerOut();
17
18private slots:
19    void connectSlots() {
20        page->mainFrame()->evaluateJavaScript("DevObject.signalDevObjTimerOut.connect(f);");
21    }

22
23    void slotTimerOut() {
24        emit signalObjTimerOut();
25    }

26}
;
27
28#endif // MYOBJECT_H

main.cpp
 1int main(int argc, char *argv[])
 2{
 3    QApplication a(argc, argv);
 4    QMainWindow window;
 5    QWebView view(&window);
 6    QWebPage page;
 7    view.setPage(&page);
 8    view.setGeometry(00600400);
 9    MyObject obj(&page);
10    QObject::connect(&view, SIGNAL(loadFinished(bool)), &obj, SLOT(connectSlots()));
11    page.mainFrame()->addToJavaScriptWindowObject("qt"&obj);
12    QString content("<SCRIPT>function f() { document.body.innerHTML += 'http://m.shnenglu.com/boymaster'; }</SCRIPT>");
13    view.setContent(content.toAscii());
14    window.show();
15    return a.exec();
16}

17

這樣,頁面加載后,C++的Timer每隔1秒就會調用到JS的f()函數
posted on 2012-11-09 10:45 雙魚座的程序員 閱讀(470) 評論(0)  編輯 收藏 引用 所屬分類: Qt/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合成人婷婷小说| 日韩午夜在线播放| 亚洲经典一区| 国语自产精品视频在线看一大j8 | 午夜欧美精品久久久久久久| 在线一区二区三区四区| 亚洲欧美日韩天堂| 久久久一二三| 欧美成年人视频网站| 欧美精品一区二区精品网| 欧美日本一道本| 国产免费成人av| 亚洲国产精品视频| 亚洲欧美www| 欧美成人自拍| 一区二区三区鲁丝不卡| 久久xxxx| 欧美日韩亚洲91| 国产日韩欧美成人| 亚洲国产欧美一区二区三区久久 | 亚洲欧美日韩一区二区| 久久综合亚州| 国产精品三上| 亚洲日本欧美天堂| 欧美在线观看网站| 亚洲日本欧美日韩高观看| 亚洲午夜一区二区三区| 久久国产精品久久久久久电车 | 亚洲一区二区三区在线| 午夜在线视频一区二区区别| 久久久久久亚洲精品中文字幕| 欧美岛国在线观看| 国产日韩精品一区二区| 一区二区精品国产| 美女精品在线| 亚洲欧美国产日韩天堂区| 欧美国产精品久久| 伊人久久久大香线蕉综合直播| 亚洲一区二区av电影| 亚洲国产欧美日韩精品| 久久精品国产第一区二区三区| 欧美日韩在线一区二区| 亚洲国产精品一区在线观看不卡| 亚洲一区二区动漫| 亚洲激情国产精品| 久久综合久久综合这里只有精品| 国产人成精品一区二区三| 中日韩男男gay无套| 欧美国产一区视频在线观看 | 欧美成人精品h版在线观看| 亚洲永久精品大片| 欧美日韩一区免费| 亚洲精品影院在线观看| 欧美成人中文字幕在线| 久久综合伊人77777尤物| 国产一区二区三区久久精品| 午夜精品亚洲| 夜夜嗨av色综合久久久综合网| 欧美国产亚洲视频| 亚洲精品久久久久久久久久久久久| 蜜桃av噜噜一区二区三区| 久久久久久久久久看片| 极品少妇一区二区三区精品视频| 久久av一区二区三区漫画| 亚洲一区视频| 国产午夜精品一区二区三区欧美| 久久狠狠婷婷| 久久久久网站| 亚洲国产精品va| 亚洲东热激情| 欧美日韩精品欧美日韩精品| 亚洲网站视频| 亚洲综合日韩在线| 韩国精品主播一区二区在线观看| 久久国产一二区| 国产色产综合产在线视频| 久久久91精品国产一区二区精品| 欧美专区在线播放| 亚洲国产精品va在线观看黑人| 亚洲韩国精品一区| 国产精品成人国产乱一区| 午夜在线视频观看日韩17c| 欧美一级电影久久| 亚洲第一区在线观看| 亚洲黄网站在线观看| 99re国产精品| 日韩视频不卡中文| 国产精品免费一区二区三区观看| 欧美一区二区三区视频免费播放| 亚洲欧美日韩中文播放| 伊人久久大香线蕉综合热线| 亚洲国产日韩一区二区| 欧美午夜电影在线| 久久青草欧美一区二区三区| 欧美激情二区三区| 欧美一区二区免费| 久久中文欧美| 性欧美xxxx大乳国产app| 女人天堂亚洲aⅴ在线观看| 亚洲欧美国产精品桃花 | 欧美日韩一二三四五区| 久久精品一区二区三区四区| 欧美不卡在线| 久久久久综合一区二区三区| 欧美激情精品久久久久久黑人| 羞羞答答国产精品www一本| 另类尿喷潮videofree| 性欧美大战久久久久久久久| 欧美高清在线精品一区| 久久久国产精品一区二区中文| 欧美激情精品久久久久久免费印度| 欧美怡红院视频| 欧美另类在线播放| 毛片一区二区| 国产欧美精品一区aⅴ影院| 亚洲人成久久| 亚洲国产另类久久久精品极度| 欧美一区二区三区免费在线看| 日韩小视频在线观看| 久久蜜桃精品| 开心色5月久久精品| 国产亚洲精品激情久久| 亚洲夜间福利| 亚洲在线视频观看| 欧美久久电影| 亚洲国产欧美在线| 亚洲日本精品国产第一区| 久久久久久九九九九| 久久久久九九九九| 国产亚洲精品v| 午夜亚洲激情| 久久精品官网| 国产一区二区三区久久精品| 欧美一级视频免费在线观看| 亚洲欧美日韩精品一区二区| 欧美午夜不卡| 一区二区三区久久网| 亚洲欧美国产日韩天堂区| 国产精品二区在线观看| 亚洲一区二区综合| 欧美一级在线视频| 国产欧美一级| 久久精品国产精品亚洲精品| 免费日韩av电影| 亚洲九九精品| 欧美日韩精品在线视频| 一本色道久久88综合日韩精品| 亚洲一区二区精品| 国产精品免费视频xxxx | 欧美精品综合| 亚洲在线观看视频网站| 亚洲欧美日韩一区在线观看| 亚洲欧美视频| 国产日韩久久| 久久久久久夜精品精品免费| 模特精品在线| 夜夜嗨av一区二区三区四季av | 亚洲在线一区二区三区| 欧美一区二区三区免费视| 国产欧美日韩一区| 久久精品99国产精品日本| 男女激情久久| 在线视频亚洲一区| 国产日韩欧美在线播放| 久久九九精品| 夜夜嗨av一区二区三区| 久久久蜜桃一区二区人| 亚洲精品九九| 国产日韩欧美a| 欧美福利一区| 香蕉久久久久久久av网站| 欧美成人精品在线| 亚洲一区二区网站| 在线观看视频欧美| 国产精品亚洲人在线观看| 美脚丝袜一区二区三区在线观看| 99re视频这里只有精品| 久久男人资源视频| 中文在线一区| 在线观看视频亚洲| 国产日产欧美一区| 欧美日韩国产综合视频在线| 欧美在线免费视频| 一本高清dvd不卡在线观看| 久久阴道视频| 亚洲综合色自拍一区| 91久久国产综合久久| 国产色产综合色产在线视频| 欧美理论电影在线观看| 久久乐国产精品| 亚洲欧美色婷婷| 一本久道久久久| 最新国产成人av网站网址麻豆| 久久精品中文字幕一区| 亚洲私拍自拍| 亚洲视频精选| 日韩亚洲精品在线| 亚洲国产黄色片| 亚洲丁香婷深爱综合| 国产视频一区二区三区在线观看|