2013年1月18日金曜日

qt-creator-2.6.1とQt5/QtQuick-2.0の怪現象: Runできるけど描画おかしいの件

openSUSE-12.2に
からQtCreator-2.6.1など導入してQt5開発で遊んで居るとQtCreatorからRunとかDebugとかで実行開始するとフォームは起動するしwidthやheightも効いてるけれども中身がまったく描画されないという怪現象が発生するかもしれません。
ImageもRectangleのcolorすら真っ白描画です。キーやマウスのイベントは動くみたいだけど。

もしこの症状が発症したなら、プロジェクトの設定を見直すと何故か直るかもしれません。何故これで直るのか理由が分からないので「かもしれません」としか書けません。


例えば Alice ってQt Quick 2.0アプリのプロジェクトだったとしましょう。↑の絵ではビルド先が/tmp/build/Alice/clang-debugにしてあるので、ExecutableやWorking directoryがその様に設定されています。Run configurationのAliceはプロジェクトデフォルトの設定ですね。この状態だと真っ白現象が発生します。これを↓の様にすると白化現象は起きません。



何が違うか分かるでしょうか。設定して置いて言うのも何ですが私には何が違うか分かりません。Run configurationにAddしてCommandにビルド先のフルパスを入れてみただけです。Run Environmentも同じですが、先程のデフォルトのRun configurationとは異なり正常に描画される様になります。
ちなみに、端末からQt4版のqmlviewerでQt5用に作成した.qmlをロードするなどしても同様の白化現象が起こります。でもRun EnvironmentをUse System EnvironmentにしてQt5版のqmlviewerをwhich qmlviewerのパスにシンボリックリンクしてもQtCreatorからの実行では白化します。環境変数QTDIRも関係ありませんでした。

そもそも上記の解決手段も設定内容はまるで同じな訳で、これで解決される意味が全く分かりません。納得できません。でも直ります(╹◡╹)

何でだろう?


ちなみに、GCCのあのバージョンにClanのこのバージョンに…など使いたいKitがたくさんあってビルドディレクトリーを分けていると先のCommandに絶対パスを設定する方法では設定して回る手間が大きいので、%{buildDir}とか使うと少し楽。

0 件のコメント:

コメントを投稿