4

グローバルショートカットが必要な小さなアプリを作りたいです。そこで、現在のバージョンのlibqxt(0.5.1)をダウンロードし、QtCreatorでプロジェクトとして開きました。

Libqxtはこのように問題なくコンパイルされるので、プロジェクトの[依存関係]タブにこれを追加すると、EclipseがJARライブラリで行うように、ビルドで自動的に追加されると思いました(IDEが異なることはわかっていますが、一般的なようですそれらの間の機能)。

何が起こるのですか?Qt Creatorは、必要に応じてプロジェクトの前にqxtをコンパイルしますが、ヘッダーを含めたい場合、QtCreatorはヘッダーが見つからないことを警告し続けます。

おそらく、ヘッダーの正しい名前がありません(qxtのドキュメントに示されているヘッダーを試しました:http://doc.libqxt.org/0.5.0/classQxtGlobalShortcut.html

ちなみに、グローバルショートカットのコードを調べたところ、コードを取り除いてそのままアプリで使用できると思います。qxtチームにクレジットを付与して、アプリのコードを開きます。

4

2 に答える 2

11

ドキュメントから

.proファイルに次の行を追加します。

 CONFIG  += qxt
 QXT     += core gui

注:LinuxでQxtを構築するときは、忘れずに行ってください。sudo make installそうしないと、この小さな魔法が機能しなくなる可能性があります。

于 2010-05-08T09:53:59.590 に答える
6

Qt Creatorは、さまざまなライブラリをプロジェクトに公開する方法を知りません。それは開発者の義務です。依存関係により、メインプロジェクトをビルドする前に、言及されたプロジェクトのみが既にビルドされていることが保証されます。

あなたの本当の懸念は、適切にインストールせずにQxtを使用することでした。configureそれが実行され、ビルドされたと仮定すると(Qt Creatorを使用するか、 +libqxtを介して手動で)、私のソリューションは次のスニペット(明らかなQXT_DIRのカスタマイズを含む)を.proファイルに追加します。qmakemake

QXT_DIR = $${IN_PWD}/../libqxt-0.5.1
LIBS += -L$${QXT_DIR}/deploy/libs
INCLUDEPATH += $${QXT_DIR}/deploy/include
for(module, QXT) {
 MODNAME = $$upper($$replace(module, "(.).*", "\1"))$$replace(module, "^.", "")
 INCLUDEPATH += $${QXT_DIR}/deploy/include/Qxt$${MODNAME}
 INCLUDEPATH += $${QXT_DIR}/src/$${module}
 win32:CONFIG(debug, debug|release):MODNAME = $$join(MODNAME,,,d)
 LIBS += -lQxt$${MODNAME}
}

残念ながら、それが複雑なプロジェクトで機能するかどうかはわかりません。

デフォルトでは、Qxtはリリースモードでビルドされますが、Qt Creatorはデバッグモードを使用するため、WindowsでのQxtによっては、プロジェクトのバイナリが破損します。プロジェクトをリリースモードに切り替えるか、デバッグモードでQxtをビルドする必要があります(Qxtを実行configure -debugして再構築します)。

最後に、Windowsでは、プロジェクトを正常にビルドしても、QtCreatorからプロジェクトを実行することはできません。必要なファイルをディレクトリにコピーする必要があります(デバッグモードの場合は-suffixバージョンをQwt*.dll使用します) 。dlibqxt-0.5.1/deploy/libsyour_project/(release|debug)

于 2010-01-02T13:16:48.087 に答える