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

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

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

フォームエディタ

図3がフォームを開いた図です。画面が小さいので,ショートカットAlt-0で,左側に配置されているサイドバーを消して,表示領域を広くしています。

図3 Qt Creatorのフォームエディタ

図3 Qt Creatorのフォームエディタ

Qt Designerでのフォーム編集に加えて,シグナルに対応するスロットのスケルトンコードを生成する機能が使えるようになっています。ヘッダーと実装の両方のコードが生成されます。操作方法は,ウィジェットの上で,右ボタンを押してコンテキスメニューを表示し,⁠Go to slot...」を選択します。シグナルを選択するダイアログでシグナルを選ぶとソースコードにスケルトンコードが追加されます。これは,Qt Visual Studio Integrationで使えるとても便利な機能です。

.pro ファイルエディタ

qmakeの.proファイルを編集するエディタです。

リソースエディタ

Qtのリソース定義ファイル.qrcを編集するエディタです。

プレーンテキストエディタ

単純なテキストエディタです。シンタックスはハイライティングなどの機能はありません。

バイナリエディタ

16進数で直接編集するエディタです。

外部エディタ

「メニューバー⁠⁠→⁠オプション」で開かれたオプションダイアログで,⁠環境」「概要」を選択すると表示されるパネルから,任意の外部エディタを指定してファイルを編集できます。

デフォルトは,xtermでviを用いるようになっていて,Alt-V Alt-Iで起動できます。viを連想するキーバインディングになっています。

xterm -async -geom %Wx%H+%x+%y -e vi %f +%l +"normal %c|"
 Mac OS Xのxtermには -asyncオプションがないので,削除することが必要です。/usr/X11R6/binもシステム設定のパスに入っていないので,フルパスでxtermを指定するようにします。

%で始まる変数は表2のようになっています。

表2

変数説明
%fファイル名
%lカーソルのある行番号
%cカーソルの列位置
%xスクリーン上のエディタのX座標
%yスクリーン上のエディタのY座標
%wエディタの幅(ピクセル数)
%hエディタの高(ピクセル数)
%Wエディタの幅(文字数)
%Hエディタの高(文字数)
%%%

「+normal %c|」は,vimのnormalコマンドで「|(縦棒⁠⁠」コマンドを呼出して,%cで示される列位置にカーソルを移動させています。

外部エディタに Emacs を使いたいならば,以下のように記述すればよいでしょう。

emacsclient +%l:%c %f

フォームは,フォームエディタが狭いようであれば,プロジェクエクスプローラ内のフォームファイル名を右クリックして表示されるメニューからQt Designerを選んで編集できます。

ロケーター(クイックアクセス)

Navigating Quickly Around Your Code with Locator
URL:http://doc.trolltech.com/qtcreator-1.2/creator-navigation.html

ファイル,クラス,メソッドやドキュメントなど,見たいものを短いキーストロークですぐに見られる機能です。左下の虫眼鏡アイコンの横の入力欄にキー入力をすると入力に応じて候補の一覧が表示されて,直ぐに参照できます。Ctrl+Kで入力欄にフォーカスを移せるので,マウス操作なしでも使えます。

空白なしで文字列を入れると入力文字列を含むファイルが検索されます。*.uiとパターンも指定できます。最初の1文字の後に空白を入力すると,その文字によって探したい対象を表3のようにフィルタして絞れます。

表3 ロケータの検索コマンドとその検索対象

l現在のドキュメントの行番号
mメソッド
cクラス
:クラスとメッド
oドキュメントを開く
fファイルシステム上のファイル
aいずれかのプロジェクト中のファイル
p現在のプロジェクト中のファイル

たとえば,QCoreApplication::installTranslator()のリファレンスを開くには,以下のように入力します。

? installt

また,以下のように入力すると.uiファイルから生成されたヘッダファイルで定義されているsetupUiが候補として表示されるでしょう。

: setup

ビルド

Qtのデスクトップアプリケーションは,Qt Creatorでビルドできます。PC上でx86としてビルドされたQt for Embedded Linuxも使え,実行時にコマンドラインオプション-qwsを指定するようにQt Creatorで設定すれば,QVFbで実行してデバッグもできます。一般のMakefile でビルドするアプリケーションも使えるようになっていますが,Qtでアプリケーションを作るには,qmakeを使い,KDEアプリケーションには,CMakeを使う場合が多いでしょう。CMakeでQtアプリケーションをビルドするようにもできますが,Mac OS X のバンドル形式にするのは,まだ煩雑で,qmakeを使う方が簡明です。

qmakeでビルドするアプリケーション

最もよく使われ,Qt Creatorでプロジェクトを作成するとqmakeが使われます。既存の.proを使っているものは,.proを開けば,それだけでQt Creatorで使えるようにもなります。

CMakeでビルドするアプリケーション

CMakeを用いたプロジェクトのCMakeLists.txtをQt Creatorで指定して使います。CMakeLists.txtを指定するとシャドウビルドをするディレクトリを指定するダイアログが表示されます。ディレクトリを指定するとCMakeを実行するためのダイアログが表示されるので,デフォルトならば引数入力欄に「..」を入力して,CMakeLists.txtの場所を教えれば,CMakeが正しく実行されます。CMakeが実行された後には,Makefileができるので,以降は,qmakeの場合と同じ扱いになります。

その他の機能

デバッグ

スレッドも含め一般的なデバッグ機能を備えています。ただし,WindowのCDBでは,監視ウィンドウで扱えるのは,単純なPODのみです。

Qt Createrを他の統合開発環境より使いやすくしているのがデバッグヘルパで,QtとSTLの型を整形して表示できます。たとえば,QString型変数の値が日本語のようなマルチバイトでも正しく表示されます。

ヘルプ機能

すでに触れたコード補完が使え,Qt Assistantのリファレンス参照機能が統合されています。直接リファレンスを読むだけでなく,F1キー押下でカーソル下のクラス名やメソッド名から該当のリファレンスを開けます。

バージョン管理

Perforce,Git,Subversionに対応しています。

実際に使ってみて

Qt Creatorの評判はQt Visual Studio Integrationと同程度に良く,注目度も高いといえます。まだいろいろ問題はありますが,実際に使ってみて使いやすいと思いました。コード補完機能はよくできていて,ミスをかなり減らせるでしょう。たとえば,Designerのフォームのウィジェットのオブジェクト名を変更した場合に,コンパイルしなくとも,C++のソースコード編集でフォームのウィジェットを抱える変数が補完されます。しかし,Emacsやviに慣れているので,少しばかりエディタには物足りなさがあります。

著者プロフィール

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

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

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