私はかなり長い間 Qt プログラマーであり、Qt の一般的な機能のほとんどを理解しています。connect ステートメントが実行時にシグナルをスロットに接続する方法について、私はまだ混乱しています。基本的に、コンパイル時に何が起こるか、実行時に何が起こるかを理解したい..
コンパイル時: メタ オブジェクト コンパイラは、追加の cpp ファイル (Q_OBJECT を含むクラスごとに 1 つ) にシグナルを実装するコードを生成します。
実行時: シグナルはスロットにマッピングされ、スロットは実行されますか? これは私がはっきりしていない部分です...SIGNALとSLOTSは、シグナル/スロット名の文字列表現に展開されるマクロです...これとメタオブジェクトは、実行時に呼び出しをスロットにマッピングするのにどのように役立ちますか? 詳細をいただければ幸いです...
編集: このリンクは、より良いアイデアを提供します..(血まみれの詳細に興味がある場合のみ...) http://dev.libqxt.org/libqxt/wiki/Meta_Object_Format
これを QMetaObject のドキュメントと組み合わせると、物事が明確になるはずです...