2012年7月4日水曜日

既存のVisual StudioプロジェクトをQt用に変換する方法

Visual StudioとQt Add-inを使うと非常に簡単にQtのプロジェクトが作成できる.しかし,既存のQtを使っていないプロジェクトでQt(正確にはQ_OBJECTマクロ)を使おうとすると(おそらくQt Add-inのバグにより)やっかいな問題に直面する.日本語のウェブページでは対処法は見つけれなかったのでここに書き留めておく.

変換機能が使えない

これには対応するプロジェクトのvcprojファイルをテキストファイルで直接編集する必要がある.編集する箇所はファイルの上の方.

Keyword="Win32Proj"

ここを以下のように書き換える.

Keyword="Qt4VSv1.0"

Visual Studioを立ち上げると,ソリューションエクスプローラ上でプロジェクトファイル名を右クリックすると「Convert project to Qt Add-in project」というメニューが現れるようになる.
https://bugreports.qt-project.org/browse/QTVSADDINBUG-27

MOCが有効化されない

この対処法は驚くべきものである.プロジェクト内のQ_OBJECTが記述された(そうでなくてもよいのかもしれない)適当なヘッダーファイルを適当に編集すればよい(スペースを入力した後削除するなど).そうするとなぜか,いつの間にかGenerated Filesというフォルダが生成されており中にmoc_*.cppが登録されている状態になっている.
http://www.qtcentre.org/threads/8212-Invoking-MOC-w-MSVS-Qt-Visual-Integration

テスト環境