15

Qtクリエーターには、1つのウィジェットをベースウィジェットから派生するカスタム作成されたクラスに昇格させるオプションがあります-それを使用して、ウィジェットを現在のプロジェクトのクラスに昇格させたいです。Qt 作成者はクラス名とヘッダー ファイル名について尋ね、それらの値は直接*.uiファイルに送られ、次にui_myform.hに送られます- 問題は、このファイルがソース ツリーの外 (ビルド ツリー内) で生成される可能性があることです)は任意の場所にある可能性があるため、ウィンドウを促進する際のパスの直接指定は役に立ちません。QtCreator/uicに正しいヘッダーを探す場所を知らせる方法は? それは可能ですか?

おそらく、ソース ツリーの場所を特定する Qt 変数があり、それをヘッダー ファイル名フィールドに挿入できますか?

自己コンパイルされた QtCreator 2.0.1 + 自己コンパイルされた Qt 4.7.1 を使用しています。

編集:

ヘッダー ファイルの完全なパス名を入力できないのはなぜですか?

ソース ツリーを移動したり、Web 上で共有したりする場合はどうでしょうか。プロジェクトをコンパイルしたい人は、Qt クリエーターまたはソース ファイルでこのパスを編集する必要があります。どちらも受け入れられません。

4

3 に答える 3

23

Designer がプロモーション ダイアログで要求するヘッダー ファイルは、生成されたui _*.hファイルではなく、カスタム ウィジェットを定義する独自のヘッダー ファイルです。

プレーンQWidgetをに昇格させたいとします。クラスを定義するMyCustomWidget.hが、次のように.proファイルに含まれMyCustomWidgetている必要があります。MyCustomWidget

HEADERS  += MyCustomWidget.h

ウィジェット プロモーション ダイアログで、MyCustomWidget.hと入力するだけです。その目的は、生成された ui ヘッダー ファイル (それがどこにあっても) にYOURクラス定義を含めることができるようにすることです。

于 2011-02-05T19:07:55.420 に答える
3

私はすでにこのことを理解しました-私は自分のクラスに昇進し、自己記述のヘッダー名を付けていましたが、それは正しかったです。

問題は、この(自己記述)ファイルがプロジェクトディレクトリに直接ではなく、srcサブディレクトリ(他のすべてのソースもある)にあることでした.subdirsテンプレートを使用していませんが、単に

SOURCES += src/myWidget.cpp

昇格オプションにはフル パスは必要ありませんが、ファイルに表示されるとおりに必要です。この場合、 からに*.pro切り替えるとうまくいきます。myWidget.hsrc/myWidget.h

于 2011-02-06T14:40:31.197 に答える
1

昇格したウィジェット フォーム(.ui)とクラス ファイル(.cpp, .h)が Qt Creator プロジェクトのサブディレクトリにあり、j_kubik のソリューションでエラーが表示されない場合は("foo.h not found")、昇格にヘッダー ファイル名のみを使用してINCLUDEPATH、.pro ファイルのようにパスを指定してみてください。

于 2013-06-18T12:41:14.643 に答える