Extending Qt WebKit/ja: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
[[Extending QtWebKit|English]] [[Estenent QtWebKit|Catalan]] [[Extendiendo QtWebKit|Spanish]] [http://qt-devnet.developpez.com/tutoriels/qtwebkit/etendre-webkit/ French] ''[qt-devnet.developpez.com]'' '''日本語'''
[[Category:Developing with Qt::QtWebKit]]<br />[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]<br />[[Category:Japanese]]


=Qt WebKit の拡張方法=
[[Extending_QtWebKit|English]] [[Estenent_QtWebKit|Catalan]] [[Extendiendo_QtWebKit|Spanish]] &quot;French&amp;quot;:http://qt-devnet.developpez.com/tutoriels/qtwebkit/etendre-webkit/ '''日本語'''
 
= Qt WebKit の拡張方法 =


QtWebKit モジュールを使うことで、Qt と WebKit にある機能を組み合わせて拡張することができます。C++ と Web デザインのハイブリッドは様々な理由で人気を得ています。そこには、チームが熟練した Web 開発者達の巨大なコミュニティの力を借りることができるという事実もあります。
QtWebKit モジュールを使うことで、Qt と WebKit にある機能を組み合わせて拡張することができます。C++ と Web デザインのハイブリッドは様々な理由で人気を得ています。そこには、チームが熟練した Web 開発者達の巨大なコミュニティの力を借りることができるという事実もあります。


[http://doc.qt.nokia.com/qq/index.html Qt Quarterly] ''[doc.qt.nokia.com]'' の一連の記事はそれに関わる技術と課程の良い紹介と言えるでしょう。
&quot;Qt Quarterly&amp;quot;:http://doc.qt.nokia.com/qq/index.html の一連の記事はそれに関わる技術と課程の良い紹介と言えるでしょう。


==ネットワークインターフェースの作成==
== ネットワークインターフェースの作成 ==


ハイブリッドデザインでは、しばしばネットワークインターフェースを扱う Qt 独自のコードが必要となります。“Using a Simple Web Service with Qt”:http://doc.qt.nokia.com/qq/qq23-web-service.html (Qt で簡単な Web サービスを使う) では [http://www.mathtran.org/ MathTran] ''[mathtran.org]'' Web サービスを使って TeX 形式のテキストのプレビュー画像を表示しています。2007年の記事で使われたクラスは今では使用が推奨されていないため、読む価値はありません。
ハイブリッドデザインでは、しばしばネットワークインターフェースを扱う Qt 独自のコードが必要となります。&amp;quot;Using a Simple Web Service with Qt&amp;quot;:http://doc.qt.nokia.com/qq/qq23-web-service.html (Qt で簡単な Web サービスを使う) では &quot;MathTran&amp;quot;:http://www.mathtran.org/ Web サービスを使って TeX 形式のテキストのプレビュー画像を表示しています。2007年の記事で使われたクラスは今では使用が推奨されていないため、読む価値はありません。


==Web ベースのユーザーインターフェースに Qt のウィジェットを追加する==
== Web ベースのユーザーインターフェースに Qt のウィジェットを追加する ==


David Boddie の書いた [http://doc.qt.nokia.com/qq/qq26-webplugin.html Plugging into the Web] ''[doc.qt.nokia.com]'' (Web でのプラグイン)では、Web ベースのユーザーインターフェースに Qt のウィジェットを埋め込む方法を説明しています。その記事は基本的な [[doc/QWebView|QWebView]] の使い方で Web ページを表示するところから始まっています。
David Boddie の書いた &quot;Plugging into the Web&amp;quot;:http://doc.qt.nokia.com/qq/qq26-webplugin.html (Web でのプラグイン)では、Web ベースのユーザーインターフェースに Qt のウィジェットを埋め込む方法を説明しています。その記事は基本的な [[Doc:QWebView]] の使い方で Web ページを表示するところから始まっています。


その後、CSV ファイルを表示する簡単なウィジェットの作り方を [[doc/QWebPluginFactory|QWebPluginFactory]] を用いて説明しています。
<code> int main(int argc, char *argv[])<br /> {<br /> QApplication app(argc, argv);<br /> QWebView view;<br /> view.load(QUrl(&quot;http://www.trolltech.com/&amp;quot;));<br /> view.show();<br /> return app.exec&amp;amp;#40;&amp;#41;;<br /> }<br /></code>


==QtWebKit に新しいプロトコルを追加する==
その後、CSV ファイルを表示する簡単なウィジェットの作り方を [[Doc:QWebPluginFactory]] を用いて説明しています。


David がその後に書いた [http://doc.qt.nokia.com/qq/32/qq32-webkit-protocols.html Adding New Protocols to QtWebKit] ''[doc.qt.nokia.com]'' (QtWebKit に新しいプロトコルを追加する) では Qt のネットワークアクセス <span class="caps">API</span> と WebKit を用いて、[[doc/QWebView|QWebView]] を簡単な <span class="caps">FTP</span> クライアントに仕立てました。Qt のネットワークアクセス <span class="caps">API</span> は、QHttp と QFtp クラスで提供されていた機能の多く(全てではありませんが)を置き換えることを目的とした技術です。ネットワークアクセス <span class="caps">API</span> は Qt 独自の技術ではありますが、QtWebKit モジュールでこの Qt の技術と WebKit を統合させており、Qt アプリケーションの開発者はこのブラウザエンジンをカスタマイズすることができます。それはまた、このブラウザエンジンがデータを取得して描画する方法もコントロールすることを意味します。
== QtWebKit に新しいプロトコルを追加する ==


[[doc/QNetworkRequest|QNetworkRequest]] と [[doc/QNetworkReply|QNetworkReply]] はネットワークの操作を抽象化して再利用できるように設計されているため、これらのクラスを使って QtWebKit を使って書かれたブラウザに <span class="caps">FTP</span> のサポートを追加できることは明らかです。そこで、QtWebKit モジュールがネットワークアクセスクラスを使ってどのようにネットワークの操作を管理しているか確認する前に、まずはネットワークアクセスクラス自体を調べる必要があります。
David がその後に書いた &quot;Adding New Protocols to QtWebKit&amp;quot;:http://doc.qt.nokia.com/qq/32/qq32-webkit-protocols.html (QtWebKit に新しいプロトコルを追加する) では Qt のネットワークアクセス API WebKit を用いて、[[Doc:QWebView]] を簡単な FTP クライアントに仕立てました。Qt のネットワークアクセス API は、QHttp と QFtp クラスで提供されていた機能の多く(全てではありませんが)を置き換えることを目的とした技術です。ネットワークアクセス API は Qt 独自の技術ではありますが、QtWebKit モジュールでこの Qt の技術と WebKit を統合させており、Qt アプリケーションの開発者はこのブラウザエンジンをカスタマイズすることができます。それはまた、このブラウザエンジンがデータを取得して描画する方法もコントロールすることを意味します。


以下のコードは [[doc/QWebPage|QWebPage]] で使われている既存のネットワークマネージャを置き換えるための、[[doc/QNetworkAccessManager|QNetworkAccessManager]] の派生クラスの作成方法を示しています。このクラスで、URL が <span class="caps">FTP</span> プロトコルかどうかをチェックする createRequest() 関数を再実装しています。
[[Doc:QNetworkRequest]] [[Doc:QNetworkReply]] はネットワークの操作を抽象化して再利用できるように設計されているため、これらのクラスを使って QtWebKit を使って書かれたブラウザに FTP のサポートを追加できることは明らかです。そこで、QtWebKit モジュールがネットワークアクセスクラスを使ってどのようにネットワークの操作を管理しているか確認する前に、まずはネットワークアクセスクラス自体を調べる必要があります。


===Categories:===
以下のコードは [[Doc:QWebPage]] で使われている既存のネットワークマネージャを置き換えるための、[[Doc:QNetworkAccessManager]] の派生クラスの作成方法を示しています。このクラスで、URL が FTP プロトコルかどうかをチェックする createRequest() 関数を再実装しています。


* [[:Category:Developing with Qt|Developing_with_Qt]]
<code><br />NetworkAccessManager::NetworkAccessManager(QNetworkAccessManager *manager, QObject *parent)<br /> : QNetworkAccessManager(parent)<br />{<br /> setCache(manager-&gt;cache());<br /> setCookieJar(manager-&gt;cookieJar());<br /> setProxy(manager-&gt;proxy());<br /> setProxyFactory(manager-&gt;proxyFactory());<br />}
** [[:Category:Developing with Qt::QtWebKit|QtWebKit]]
* [[:Category:Japanese|Japanese]]

Revision as of 10:17, 24 February 2015


[toc align_right="yes&quot; depth="2&quot;]

English Catalan Spanish "French&quot;:http://qt-devnet.developpez.com/tutoriels/qtwebkit/etendre-webkit/ 日本語

Qt WebKit の拡張方法

QtWebKit モジュールを使うことで、Qt と WebKit にある機能を組み合わせて拡張することができます。C++ と Web デザインのハイブリッドは様々な理由で人気を得ています。そこには、チームが熟練した Web 開発者達の巨大なコミュニティの力を借りることができるという事実もあります。

"Qt Quarterly&quot;:http://doc.qt.nokia.com/qq/index.html の一連の記事はそれに関わる技術と課程の良い紹介と言えるでしょう。

ネットワークインターフェースの作成

ハイブリッドデザインでは、しばしばネットワークインターフェースを扱う Qt 独自のコードが必要となります。&quot;Using a Simple Web Service with Qt&quot;:http://doc.qt.nokia.com/qq/qq23-web-service.html (Qt で簡単な Web サービスを使う) では "MathTran&quot;:http://www.mathtran.org/ Web サービスを使って TeX 形式のテキストのプレビュー画像を表示しています。2007年の記事で使われたクラスは今では使用が推奨されていないため、読む価値はありません。

Web ベースのユーザーインターフェースに Qt のウィジェットを追加する

David Boddie の書いた "Plugging into the Web&quot;:http://doc.qt.nokia.com/qq/qq26-webplugin.html (Web でのプラグイン)では、Web ベースのユーザーインターフェースに Qt のウィジェットを埋め込む方法を説明しています。その記事は基本的な Doc:QWebView の使い方で Web ページを表示するところから始まっています。

 int main(int argc, char *argv[])<br /> {<br /> QApplication app(argc, argv);<br /> QWebView view;<br /> view.load(QUrl(&quot;http://www.trolltech.com/&amp;quot;));<br /> view.show();<br /> return app.exec&amp;amp;#40;&amp;#41;;<br /> }<br />

その後、CSV ファイルを表示する簡単なウィジェットの作り方を Doc:QWebPluginFactory を用いて説明しています。

QtWebKit に新しいプロトコルを追加する

David がその後に書いた "Adding New Protocols to QtWebKit&quot;:http://doc.qt.nokia.com/qq/32/qq32-webkit-protocols.html (QtWebKit に新しいプロトコルを追加する) では Qt のネットワークアクセス API と WebKit を用いて、Doc:QWebView を簡単な FTP クライアントに仕立てました。Qt のネットワークアクセス API は、QHttp と QFtp クラスで提供されていた機能の多く(全てではありませんが)を置き換えることを目的とした技術です。ネットワークアクセス API は Qt 独自の技術ではありますが、QtWebKit モジュールでこの Qt の技術と WebKit を統合させており、Qt アプリケーションの開発者はこのブラウザエンジンをカスタマイズすることができます。それはまた、このブラウザエンジンがデータを取得して描画する方法もコントロールすることを意味します。

Doc:QNetworkRequestDoc:QNetworkReply はネットワークの操作を抽象化して再利用できるように設計されているため、これらのクラスを使って QtWebKit を使って書かれたブラウザに FTP のサポートを追加できることは明らかです。そこで、QtWebKit モジュールがネットワークアクセスクラスを使ってどのようにネットワークの操作を管理しているか確認する前に、まずはネットワークアクセスクラス自体を調べる必要があります。

以下のコードは Doc:QWebPage で使われている既存のネットワークマネージャを置き換えるための、Doc:QNetworkAccessManager の派生クラスの作成方法を示しています。このクラスで、URL が FTP プロトコルかどうかをチェックする createRequest() 関数を再実装しています。


NetworkAccessManager::NetworkAccessManager(QNetworkAccessManager *manager, QObject *parent)
 : QNetworkAccessManager(parent)
{
setCache(manager->cache());
setCookieJar(manager->cookieJar());
setProxy(manager->proxy());
setProxyFactory(manager->proxyFactory());
}