問題タブ [qmetaobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5174 参照

c++ - CMake プロジェクトで Q_OBJECT マクロを使用できない

CMake プロジェクトで Qt のメタ オブジェクト コンパイラに問題があります。私が構築している共有ライブラリには、次のコードが含まれており、pimpl イディオムを採用しています。CMake を呼び出してコンパイルすると、

AUTOGEN: エラー: ~/tools/Project/gui/src/mainWindow.cpp: ファイルには Q_OBJECT マクロが含まれていますが、「mainWindow.moc」は含まれていません! gui/CMakeFiles/gui_automoc.dir/build.make:57: ターゲット 'gui/CMakeFiles/gui_automoc' のレシピが作成に失敗しました[2]: *** [gui/CMakeFiles/gui_automoc] エラー 1 CMakeFiles/Makefile2:234: レシピターゲット 'gui/CMakeFiles/gui_automoc.dir/all' が失敗しました

私が間違っていることや、srcファイルをプロジェクトにQ_OBJECTマクロに組み込む正しい方法がわかりません。助けてください =/

GUI/インクルード/GUI/mainWindow.hpp

gui/src/mainWindow.cpp

次のようにライブラリをコンパイルします。

今、このライブラリを実行可能ファイルにリンクしたい

アプリ/main.cpp

次のCMakelists.txtを使用して、gui libに対してリンクします

プロジェクトのトップレベルの CMakeLists は次のようになります

0 投票する
2 に答える
1703 参照

c++ - 出力引数を持つ Qt invokeMethod 呼び出し関数

QMetaObject::invokeMethod の使用法を理解しようとしています。私は1つの引数(非const QString)を持つ関数を持っています。それを出力にしたいのですが、関数には戻り値がなく、invokeMethodの呼び出しは常に失敗しますが、戻り値があり引数がない別の関数を呼び出すことはできません成功しました。コードは次のとおりです。

myclass.h

myclass.cpp

main.cpp

結果は次のとおりです。

いろいろ試したのですが、うまくいきません 原因わかる方いますか?前もって感謝します!