Q_OBJECT マクロは何をしますか? すべての Qt オブジェクトにこのマクロが必要なのはなぜですか? 質問する

Q_OBJECT マクロは何をしますか? すべての Qt オブジェクトにこのマクロが必要なのはなぜですか? 質問する

Q_OBJECTQt を使い始めたばかりですが、すべてのサンプル クラス定義の最初の行にマクロがあることに気付きました。このプリプロセッサ マクロの目的は何ですか?

ベストアンサー1

からQt ドキュメント:

メタオブジェクトコンパイラ (moc) は、Qt の C++ 拡張を処理するプログラムです。

moc ツールは C++ ヘッダー ファイルを読み取ります。Q_OBJECT マクロを含む 1 つ以上のクラス宣言が見つかると、それらのクラスのメタオブジェクト コードを含む C++ ソース ファイルが生成されます。特に、シグナルとスロットのメカニズム、実行時の型情報、および動的プロパティ システムにはメタオブジェクト コードが必要です。

おすすめ記事