Q_OBJECT
Qt を使い始めたばかりですが、すべてのサンプル クラス定義の最初の行にマクロがあることに気付きました。このプリプロセッサ マクロの目的は何ですか?
ベストアンサー1
からQt ドキュメント:
メタオブジェクトコンパイラ (moc) は、Qt の C++ 拡張を処理するプログラムです。
moc ツールは C++ ヘッダー ファイルを読み取ります。Q_OBJECT マクロを含む 1 つ以上のクラス宣言が見つかると、それらのクラスのメタオブジェクト コードを含む C++ ソース ファイルが生成されます。特に、シグナルとスロットのメカニズム、実行時の型情報、および動的プロパティ システムにはメタオブジェクト コードが必要です。