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
テスト環境
- Windows 7 Pro x64
- Microsoft Visual C++ 2008
- Qt 4.7.3
- Qt Add-in 1.1.10
http://qt.nokia.com/downloads/visual-studio-add-in