0

これまでコンソールで作業してきましたが、数日前に QT GUI を試すことにしました。QT SDK をダウンロードしてインストールし、QT の場所を調整して、サイトの指示に従って PATH 環境変数を設定しました。

Code:: Blocks-in で新しい Qt4 プロジェクトを開きましたが、すべて問題ないように見えました。デフォルトでは、次の例があります。

#include <QApplication>
#include <QFont>
#include <QPushButton>


int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QPushButton quit("Quit");

    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));

    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

    quit.show();

    return app.exec();
}

それを始めて、それはすべてOKでした。

その後、公式サイトのチュートリアルに行き、最後の例があります。ある種の単純なゲームです。すべての .h および .cpp ファイルをコピーして貼り付け、現在のプロジェクトに配置して動作を確認しましたが、問題が発生しました。

Code::Blocks はいくつかのクラスを認識しません。例 :: #include QTimer : そのようなファイルまたはディレクトリはありません #include QRect : そのようなファイルまたはディレクトリはありません

QT をアンインストールし、再インストールしてすべてを再構成しましたが、問題は解決しません。

これらのクラスは機能せず、デフォルトの例でも ::

#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QTimer>     does not have real purpose , just for illustration

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QPushButton quit("Quit");

    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));

    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

    quit.show();

    return app.exec();
}

ba\107\main.cpp|4|QTimer: そのようなファイルまたはディレクトリはありません| ||=== ビルドが終了しました: 1 エラー、0 警告 ===|

どれだけのクラスが適切に機能するかはわかりませんが、これはそれらのほんの一部です。

解決策を探してグーグルで何日もお湯を明らかにしないでください.おそらくあなたの何人かにとっては、これは奇妙に簡単な問題です.

ありがとう

4

3 に答える 3

1

デフォルトのインクルード検索パスで時間を費やすか、インクルードするヘッダーのより明示的なパスを指定する必要があります。Windows XP/32 上の Code::Blocks 10.05 (gcc がバンドルされている) と以前にインストールされた Qt 4.6 で問題を再現できました。これは、問題なくビルドできたコードのわずかに変更されたバージョンです。

#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QtCore/QTimer>

int main(int argc, char* argv[])
{
QApplication app(argc, argv);

QPushButton quit("Quit");

quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));

QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

quit.show();

return app.exec();
}

Qt のインストール ディレクトリを見てください。他のヘッダーでこの問題が発生した場合は、インクルード ディレクトリと、すべてのヘッダーがその中にある場所を確認できます。Code::Blocks プロジェクトは、デフォルトで QtGui ディレクトリをインクルード検索パスとして設定しているようです。そのため、QPushButton などを含めるために明示的に言及する必要はありませんでした。

于 2010-06-21T22:23:59.360 に答える
0

Code :: Blocksは単なるIDEであり、コンパイラ/リンカーツールチェーンではないため、ファイルを見つけることができないCode::blocksではありません。単にそれらを使用するようにプロジェクトを構成していません。

「そのようなファイルまたはディレクトリはありません」は、プリプロセッサのエラーメッセージです。それでも、サードパーティのヘッダーファイルの場所をコンパイラに指示する必要があります。さらに、リンクに関しては、ライブラリの場所をリンカに指示する必要があります。

于 2010-06-21T21:54:47.887 に答える
0

#include <blah>(アングルブラケット付きの)がある場合は常に<>、コンパイラはデフォルトのインクルードパスを調べます。Qtインクルードディレクトリをプロジェクトのインクルードパスに配置する必要があります。これがCode::Blocksでどのように行われるかわかりません。おそらくプロジェクト設定のどこかにあります。

于 2010-06-21T21:56:13.030 に答える