Qt を Web ブラウザで動かす

Google の Native Client 上で Qt を動かす試みは比較的前から有る話題でしたのでご存じの方もいらっしゃると思いますが、最近、それとは別のアプローチで Qt を Web ブラウザで動かしている例がありました。

詳しいことは以下の記事とそこからリンクされているそれ以前の記事を参照してください。

それは Emscripten というプロジェクトを用いて実現されています。Emscripten は LLVM をベースにして、C/C++(や LLVM のフロントエンドがサポートする言語) を JavaScript へコンパイル(コンバート?)することが出来ます。上記の記事では Emscripten を使って、Qt を JavaScript にコンパイルしてブラウザ上で動かしています。画像を見ると Firefox や Chromium で動いているところが確認できます。実際に動かしてみたい方は記事中にデモへのリンクがあるのでそちらをたどってみてください。QtCore と QtGui とアプリをまとめて JavaScript にするため、ファイルサイズは数MB以上と大きくなり、実際に動き出すまでの時間はかかりますが、ランタイムやプラグインのインストール無しに Qt アプリが動いている様子はなかなか面白いものです。さすがに、レスポンスが良いとは言えませんが。

動かしている Qt のバージョンについての詳しい記述はありませんが、QWS で動かしていることから Qt4 系だということは分かります。やり方によっては QtWebKit や QtScript 上で Qt を動かすような事も出来るかもしれません。

Qt 5 のサポートアーキテクチャの今後

Qt5 の QAtomicIntQAtomicPointer では Qt4 とのソース互換性が無いことを受けて、新しい QAtomic 系クラスに対応していないアーキテクチャへのサポートの将来的な停止が Qt Core モジュールのメンテナである Thiago Macieira から提案されました。

現在その対象となっているのは以下のアーキテクチャです。

  • Integrity
  • VxWorks
  • Alpha
  • Blackfin
  • POWER and PowerPC
  • S/390
  • SH-4a
  • SPARC

メールでは 5.1 で利用停止を推奨し、5.2 で古いコードの削除が提案されています。もっとも、削除した場合でも C++11 の std::atomic や gcc の機能を使った実装があるため、それらのアーキテクチャでは全く動かないということにはならないようです。

Qt5 の QtWebKit の SQLite 依存について

WebKit は以前から(Qt に関係無く)、SQLite に依存していたのですが、Qt 5 でその依存性の解決方法を変更したとのことです。QtWebKit 単体でクロスコンパイルや Windows でビルドする場合に影響があるようなので、注意してください。

[Development] heads-up: QtWebKit’s SQLite dependency

新しい方法では以下の順番で検索するそうです。

  1. pkg-config を使って SQLite を検索。ただし、Mac では標準の SQLite を使う。
  2. Qt5 のソースツリー内の QtWebKit をビルドする場合、qtbase/src/3rdparty/sqlite にある SQLite を使う。
  3. SQLITE3SRCDIR 環境変数が指し示す SQLite を使う。

Visual Studio Add-In 1.2.0 for Qt 5 リリース

Qt 5.0.0 のリリース にあわせて、Qt5 に対応した Visual Stuido Add-In がリリース されています。

(Express 以外の) Visual Studio 2008, 2010, 2012 に対応しています。

なお、Qt4 には対応していませんので、Qt4 メインの人は引き続き VS Add-In 1.1.x を使用してください。試せる環境がないので分かりませんが、おそらく共存は出来ないと思います。

Qt 4.6.5 & 4.7.6 RC

ひっそりと Qt 4.6.5 と 4.7.6 のリリース候補版(RC)が出ています。

重大なセキュリティ問題の修正と著作権表記の変更が行われています。

4.6.5:
  • SSL 圧縮をデフォルトでオフに
  • openssl のバージョン間でのバイナリ互換性の問題を修正
  • 著作権表記を Nokia から Digia へ変更
4.7.6:
  • SSL 圧縮をデフォルトでオフに
  • リダイレクト時のルールを若干厳密に
  • openssl のバージョン間でのバイナリ互換性の問題を修正
  • 著作権表記を Nokia から Digia へ変更

4.6, 4.7 を使用している人は次期に正式リリースされると思いますので、該当するバグが影響しないか確認してください。

Qt Developer Days 2012 North America まとめ

2012/12/6 – 7 と Santa Clara で開催された Qt Developer Days 2012 North America に参加してきました。イベントの全体的な感想をこの記事に書こうかと思います。キーノートや特に面白かったセッションの感想は以下の記事に書いていますので、そちらを参考にしてください。

Dev Days 自体への参加が二年ぶり、アメリカでの Qt Dev Days への参加は三年ぶりとなるので昨年との比較は難しいところですが、Nokia の撤退と、準備期間の短さなどから少し規模は小さくなったのかなという感じでした。雰囲気的にも Qt 5.0.0 のリリース直前というのも関連してか比較的落ち着いている感じがしました。これまでと違うところは、テクニカルトラック・ビジネストラックという区分けがなくなったこと、セッションを話す人が非常にバリエーション豊かになったところでしょうか。セッション公募の影響も大きいのでしょう。KDAB, ICS, Digia といった主催の人はもちろん、Blackberry や Open WebOS、オープンソースコミュニティからは KDE による多数のセッションも開催され、BoF もいくつか開催されていました。

多少の変化は感じましたが、大体の所は今までの Qt Dev Days だった感じです。Nokia 撤退後の混乱もようやく落ち着いてきた感じなのでしょうか。とはいえ顔ぶれも大きく変わりました。あらたな Qt の始まりとして今後も続けていってもらえればと思います。

最後に、資料関連の記事を。

Qt Developer Days 2012 North America の資料

Qt Developer Days 2012 Europe に引き続いて、North America の資料も公開されています。

  • Detailed Schedule

からリンクされている、各セッションのページにスライドへのリンクがあります。すべてのセッションではありませんし、キーノートさえスライドもビデオもなかったりと Europe の資料 だけでも良さそうな感じですが、一部アップデートされている資料もあるようです。

Plasma Active を Nexus 7 で動かす

Plasma Active とは KDEbasysKom, OpenSLX が進めているプロジェクトで、KDE とその Plasma をベースにタブレット向けの UX を作成しています。

ネットブック系のハードウェアで動かされることの多かった Plasma Active ですが、その公式ハードウェアとして期待された Vivaldi もリリースされず、少し試しにくい状態にありました。

そんな中、Nuxus 7 で Plasma Active を動かしたという記事がありましたので紹介します。

“Plasma Active を Nexus 7 で動かす” の続きを読む

12/15 超勉強会の資料

盛大に持ち時間を勘違いして30分枠用に作ったものですが、12/15 の「年末恒例 #QtJP #MeeGoJP #KDE #TizenJP #FirefoxOSJP #LinaroJP 超勉強会2012」で使った資料を公開します。

勉強会の模様は以下の Togetter などを参考にしてください。

http://togetter.com/li/423046

ちなみに、Input Method 関連の変化を入れるのを忘れてましたが、要望があれば簡単な解説記事でも書きたいと思います。

Qt 5.0.0 リリース

Qt 5.0.0 がリリース されました。

OpenGL の活用を中心にいろいろなところが変化した Qt 5 ですが、リリースの携帯も変更になっています。今回のリリースではバイナリパッケージが SDK 形式になっていて、Qt 5.0.0 のバイナリに加えて(Qt 5.0.0 でビルドされた)Qt Creator 2.6.1 も同梱されています。おそらく今後のアップデートは以前の Nokia SDK のようになると思われます。Qt 4.8 向けの環境もあるといいのですが。

Qt Project では既に 5.0.1 と 5.1 に向けて動き始めています。5.0.1 は一月の中旬、5.1 は四月末か五月の始め辺りが目処でしょうか。バグなどを見つけたら フィードバック しましょう。

“Qt 5.0.0 リリース” の続きを読む