0

Qt Creator で新しいモバイル アプリケーションを作成したとき、どちらも同じように動作するはずなのに、自動生成されたコードで の#include <QtCore/QCoreApplication>代わりに使用していることに気付きました。#include <QCoreApplication>

Qt Creator 自体がそれを行うため、これが推奨される規則であると思います。しかし、これがそうである理由はありますか?誰かが#include <QtCore/QCoreApplication>代わりに使用するポイントを説明でき#include <QCoreApplication>ますか?

4

2 に答える 2

2

このような規則を使用する理由は複数あります:-

  1. コンパイラに含まれるパスが QtCore のディレクトリ レベルにある場合、そこからインクルード ファイル QCoreApplication をトレースします。
  2. 同じディレクトリに複数のバージョンの Qt が存在するため、あいまいさを排除する規則を使用することをお勧めします。

/usr/include/ に 2 つのディレクトリがあります。

  • QtCore
  • Qt

どちらにも QCoreApplication が含まれています。

于 2012-08-11T08:05:50.867 に答える
1

フォームから生成されたコードの場合、「デザイナー」タブのオプションで「#include-directive で Qt モジュール名を使用」を変更できます。

モジュールを指定するときに、少し、しかし時々厄介な問題に気付きました。デフォルトでは、qmake/path/to/qt/sdk/includeはインクルード パスに追加します。これは、たとえば次のことができることを意味します

#include <QtGui/QWidget>

プロジェクトファイルにある場合でも

QT -= gui

その後、コンパイルはうまくいきますが、リンク用に QtGui4 ライブラリが選択されないため、リンカは怒ってしまいます。

あなたがした場合

#include <QWidget>

代わりに、コンパイルは失敗します。

于 2012-08-11T08:17:34.317 に答える