進化するQt-Qt最新事情2009

第1回 Qt Creatorが拓くQtアプリ開発新時代[前編]

この記事を読むのに必要な時間:およそ 4 分

はじめに

Qt 4.5とQt Creatorが2009年3月初めにリリースされて半年経ちました。年末には,次のリリースのQt 4.6がリリースされる予定です。これから数回に分けて,Qtの最新動向をお伝えします。

まず最初の話題として,Qtのアプリケーション開発のために作られた統合開発環境Qt Creatorを紹介しましょう。

Qt Creatorとは

Qt Creatorは,Qtアプリケーションの開発に特化したマルチプラットフォームで利用できる軽量統合開発環境です。大規模で複雑な開発では,汎用的な既存の統合開発環境を用い,うまく使い分けようという意図で開発されています。したがって,今までのQt向けの他の統合開発環境との統合化は,今後も提供される予定です。

Qt Creatorの主な機能を挙げてみましょう。

マルチプラットフォーム
Linux,Mac OS X,Windowsのすべてで利用できる唯一のQt向けの統合開発環境です。
洗練されたコードエディタ
シンタックスハイライティング,コード補完,コードの折畳み表示などの機能を備えたコードエディタです。
Qt 4 プロジェクト作成ウィザード
コンソールアプリケーション,GUI アプリケーション,C++ ライブラリなどのプロジェクトを作成するウィザードです。
Qt ヘルプインテグレーション
ボタンクリックだけで,Qt の全ドキュメントを参照できます。
Qt Designerインテグレーション
Qt Creator のウィンドウ内で,ユーザインターフェースフォームを作成できます。
ロケータ
少ないキー入力で,ファイル,クラス,メソッドやドキュメントなどに直ぐにアクセスできます。
プロジェクト
qmake,CMake,そして一般のMakefileを扱えます。
デバッグ
GNUシンボリックデバッガ(GDB)とMicrosoft Console Debugger(CDB)のフロントエンドが用意されていて,グラフィカルにソースコードを見ながらデバッグできます。

Qt Creator登場以前の統合開発環境

Qt Creatorが現れるまでに,Qtが統合開発環境とどのように関って来たかを見てみましょう。何故Qt Creatorが作られたかが想像できると思います。

qmakeによる統合環境用プロジェクトの生成

Visual StudioやXcodeのプロジェクトをqmakeの.proファイルから生成する機能です。生成のみの一方通行で,生成後にプロジェクト構成を変更すると.proには戻せません。古くからある機能で,今でも使えます。

Qt 3 Designerのプロジェクト機能

Qt 3のDesignerには,qmakeの.proファイルベースのプロジェクト管理機能があり,ソースファイルやフォーム(ウィジェットを配置したGUI部品)を扱え,フォームに独自のシグナルやスロットを記述できました。ソースコード編集でのコード補完,ビルドやデバッグ機能はありませんが,Qt Designerを使って,動くアプリケーションを一通り作れます。

しかし,問題もありました。まず,安定性には問題があり,安定したのは,Qt3の最後のバージョンQt 3.3.8の近くのリリースになってからでしょう(Qt 4のDesignerもよく落ちましたが,ここ最近は安定しているようです)。 また,テンプレートにコードを書いて,継承をすると,どのコードを使えばよいかが特定できなくなるという不整合性もありました。フォームに付随して,ヘッダーファイルや実装ファイルが増え過ぎるのも煩わしいものでした。

Qt 4が開発段階だった頃に,開発者からQt 3のDesignerをどう思うかと訊かれ,機能が多過ぎると返事をすると,その通り,だから,Qt 4のDesignerでは,すっきりとした機能にした。元々Designerは,ウィジェットを配置するのを助けるためのツールだったのですが,色々と余計な機能が付けられておかしくなっていたのです。

Qt Visual Studio Integration

Qt 1.4: Qt Visual Studio .NET Integration

Qt商用版のみで利用できる統合環境です。Visual Studioでの開発に慣れていて,Qtでの開発をしようという場合には,最良の開発環境でしょう。かなりの完成度で,シームレスに統合されていて,Visual Studioでの手法に添って,同じ環境でプログラミングやデバッグができます。Qt用のプロジェクトテンプレートが用意されていて,qmakeを知らなくても,Qtのプロジェクトが容易に作れます。コード編集時には,Qt APIのマニュアル参照ができ,Qt APIに対して,IntelliSense機能が使えます。フォーム作成時にはVisual Studio内で,フォームの編集もできます。

限界と言える問題もあります,QStringなどの値がマルチバイトの場合に,デバッガで値を見られません。signalsやslotsのキーワード絡みで,インテリセンスで,コード補完ができない場合があり,以下のようにしてセミコロンを付加するという回避策が必要です。

public slots: ;

この問題については,以下のタスクトラッカーに,詳しく説明されています。

Qt Visual Studio Add-in

Qt 4.5と同時にリリースされたVisual Studioとの統合化機能で,オープンソース版でも利用できます。前述のQt Visual Studio Integrationのサブセットで,見劣りがします。Visual Studio内でフォーム編集はできず,Qt Designerを外部ツールとして併用します。Qtのリソース管理機能はなく,リソース編集に別にリソースエディタが用意されています。ロードマップには,今後の改良確定機能として挙げられていますが,十分な統合化がされるのがいつになるかは,公表されていません。

Qt Eclipse Integration

LinuxとWindowsでは,Eclipse CDTと合わせて使って,Qtアプリケーションを作成できる統合化が提供されています。ほぼ,Qt Visual Studio Integration と同じ機能が実現されています。ただし,Windowsでは,MinGWを用いることになります。また,Mac OS X向けには,長い間リリース予定のままで,まだリリースされていません。そして,Eclipseは,どのプラットフォームでもとても重い統合開発環境です。

プラットフォームごとの統合開発環境の選択肢

Qtアプリケーション作成に利用できる統合開発環境を表1にまとめました。

表1

OS利用可能な統合開発環境
LinuxKDevelop(GDB),Eclipse/Qt Eclipse Integration(GDB),Qt Creator(GDB)
Mac OS XXcode(GDB),Qt Creator(GDB)
WindowsVisual Studio/Qt Visual Studio Integration,Eclipse/Qt Eclipse Integration(GDB),Qt Creator(GDB/CDB)

Qt Creatorのみが上記3つのプラットフォームで共通に使える統合開発環境です。ただし,Qt Creatorを選択肢にする場合に,以降の考慮が必要でしょう。

サポートプラットフォーム

QtのSupported Platformsのページに,以下がサポート対象と記載されています。

  • Windows XP Service Pack 2
  • Windows Vista
  • (K)Ubuntu Linux 5.04
  • (K)Ubuntu Linux 7.04 32bit and 64 bit
  • Mac OS 10.4 and later

UNIX/Linux

サポートされるのは,Linuxのみと考えた方がよさそうです。Solarisで動かすには,修正が必要でした。Webで調べた限りでは,FreeBSDで動かすにも修正が必要なようです。GCCとGDBのみが使えるコンパイラとデバッガで,他のコンパイラとデバッガは使えません。

Windows

MinGWで作成したアプリケーションは,Visual Studioのコンパイラで作成したものよりも実行速度が遅く,見て判別できます。製品開発過程では,一般に開発用,出荷用,保守用でコンパイラを分けることはしませんので,MinGWではなく,Visual StudioやIntelコンパイラを使うことも必要となる場合も少なくないでしょう。

著者プロフィール

杉田研治(すぎたけんじ)

1955年生まれ。東京都出身。株式会社SRAに勤務。プログラマ。

仕事のほとんどをMac OS XとKubuntu KDE 4でQtと供に過ごす。

コメント

コメントの記入