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

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

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

第1回の前回は,Qt Creatorの概要と導入について紹介しました。今回はQt Creatorの主要機能ごとに,特徴的な面を見て行きましょう。

操作全般の注意点

Qt CreatorオンラインマニュアルのKeyboard Shortcutsにある操作全般のキーバインディングを見ると,6つのモード切替と出力ペインの切替が,キー操作ひとつでできるようになっています。Escでのコードエディタへの切替など,軽快にモードを切換えられます。F2キーでカーソル位置のシンボルの定義を表示したり,Shift+F2でメソッドの宣言と定義を切替えて表示したり,F4キーでヘッダとソースを切替えたりと,よく使う操作をキーストロークひとつで素早くできるようになっています。

どの統合開発環境でも同じですが,全体での操作性を重視しているため,エディタ機能はEmacsやvi などのテキストエディタのように強力なものではありません。Qt Creatorの目的の中には,できるだけマウスを使わずに,キーボード操作で使える統合開発環境を作ることが挙げられています。エディタはその中で合わせて使われるものであって,エディタの機能だけでマウスを使わないようになっていないというのは違っている,というのが,以下のメーリングリストでのやりとりからわかります。

プロジェクトの開始

Embedded Widget Demos ― Qt - A cross-platform application and UI framework
URL:http://qt.nokia.com/developer/embedded-widget-demos

図1は,上記URLにあるのEmbedded WidgetをQt Creatorでビルドして,実行したものです。Qt Creatorでこのプロジェクトを開くと図2のようになります。

図1 「Patient Care UI demo」のUI

図1 「Patient Care UI demo」のUI

図2 Qt Creatorのプロジェクト作成画面

図2 Qt Creatorのプロジェクト作成画面

Embedded Widgetには,共通ファイルと2つのサンプルアプリケーションが入っています。このように,複数のアプリケーションを作るような場合にもQt Creatorは対応していて,Embedded Widgetのトップレベルにあるqmakeの.proファイルを指定して,プロジェクトを開くだけでビルドから実行までできてしまいます。2つのサンプルアプリケーションのどちらを実行するかも認識し,プロジェクトの実行時の設定パネルで選択できます。 図2をご覧になってもわかるように,機能を絞って軽快に使えるようにしようという印象を受ける作りになっています。

プロジェクトで扱えるファイルは以下の通りです。.tsファイル以外のQtアプリケーション作成で必要となるファイルはすべて扱うことができ,それぞれのファイル用のエディタで開かれるようになっています。

  • .pro ファイル
  • ソースファイル
  • ヘッダーファイル
  • フォーム(.ui ファイル)
  • リソース(.qrc ファイル)

セッション

「メニューバー」「セッション」で辿って表示されるメニューで,セッションを管理できます。セッションとは,ロードしたプロジェクト,開いたファイル,エディタ設定などの環境を保存と復帰ができるようにする機能です。Qt Creatorを終了し,次の日にまた立ち上げて,セッションを復帰させると,前の日の状態で,Qt Creatorが使えるようになります。複数のセッションを持てるので,目的に合わせてセッションを使い分けることもできます。

エディタ

Qt Creatorには,扱うファイルに応じていろいろなエディタが用意されています。これらを紹介しましょう。

コードエディタ

QPlainTextEditをベースクラスとして拡張し,シンタックスハイライティング,コード補完,コードの折り畳み表示,自動インデントなど,最近の統合開発環境のエディタが持っている機能を備えています。

ポインタ変数の後で「.」を入力すると「->」に変わって,コード補完メニューが表示されるなど,気が利いた機能もあります。補完メニューも欲しいと思ったときに表示でできます。

  • qApp. → qApp-> … QApplicationの全メソッドの補完メニュー
  • qApp->in<Ctrl-Space> … inで始まる候補の補完メニュー

Qt 4.5: QPlainTextEdit Class Reference に,QPlainTextEditの基本的な編集用キーバインディングが載っていますが,コードエディタにはこれに加えて表1にあるような機能が追加され,キーバインディングされています。ショートカットによる操作だけでなく,「メニューバー」「編集」で表示されるメニューからも操作できるようになっています。

表1 コードエディタの追加機能

ショートカット操作
Ctrl+I選択範囲を自動インデントする。選択されていなければ,カーソルのある行を自動インデントする。
未割当て行末の空白を除去する。
Ctrl+<ブロックを折り畳む。
Ctrl+Space補完メニューを表示する。
Ctrl+Alt+Downカーソルのある行または選択部分を下にコピーする。
Ctrl+Alt+Upカーソルのある行または選択部分を上にコピーする。
Shift+Del1行切り取る。
Ctrl+-フォントを小さくする。
未割当て行削除する。
Ctrl+>ブロックを展開する。
Alt+V, Alt+VFakeVm編集との切替える。
Ctrl+]ブロックの終了位置に移動する。
Ctrl+}ブロックの終了位置に移動し,選択状態にする。
Ctrl+[ブロックの開始位置に移動する。
Ctrl+{ブロックの開始位置に移動し,選択状態にする。
Ctrl++フォントを大きくする。
Ctrl+Shift+Downカーソルのある行または選択部分を下に移動する。
Ctrl+Shift+Upカーソルのある行または選択部分を上に移動する。
Ctrl+Shift+U選択したブロックを下に移動する。
Ctrl+U選択したブロックを上に移動する。
未割当て文字コードを選択する。
Ctrl+E, Ctrl+W長い行の折り返しを切り換える。Mac OS Xはバインディングなし。
未割当て全ての折り畳みと展開を切り換える。
Ctrl+/選択範囲のコメント化と非コメント化を切換える。
Ctrl+E, Ctrl+V空白文字を小さな丸い印で,タブを矢印で,ファイル末端を菱形印で表示する。Mac OS X ではバインディングなし。

 Linuxでのキーバインディング。以降も同様です。

viでの操作をしたいということから,FakeVimプラグインが用意されました。単純なviコマンドは使えますが,viを使え慣れてると多くの違和感があります。たとえば,インサートモードでなくても } や& が入力できてしまいます。ESC は効きますが ^] は効きません。dd で1行消える時と,行頭の1文字が消えカーソルが行頭に移動するときがあります。自動インデントを有効にしていても効きません。

著者プロフィール

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

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

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

コメント

コメントの記入