我需要實現一個動態可配置的數據處理工具包。將會有幾個數據處理實體,它們可以通過使用GUI工具組合成一個數據流圖。 這個想法類似於直接顯示過濾器圖形(GraphEdit)或蘋果的Quartz Composer。
GUI工具將圖形定義存儲在文件中。當實際處理開始時,將讀取此定義文件,並且必須在運行時創建並連接數據處理對象。
我以前使用Qt的信號和插槽來解決相似的問題,但這次主程序沒有任何GUI。所以我想要使用不那麼臃腫的東西。
問題
什麼是有基本的反射信號/插槽功能最簡單的方法,不使用Qt?
我需要定義固定數量的插槽類型(每個插槽具有一定的預定義功能簽名)。 例如,將會有一個圖像消耗槽,以一個圖像對象作爲參數,或者一個只需要int參數的槽。
在運行時,我需要遍歷所有信號/插槽並動態連接它們。
我不需要在運行時檢查插槽/信號參數。它足夠擁有固定數量的參數集。可以在插槽名稱中加入某種提示來確定簽名類型。
我知道增加信號2,提供信號/插槽功能。但是,實現反射的最快方法是什麼?我應該建立自己的一套宏 - 黑客?
你知道,Qt的信號和插槽[QtCore(http://developer.qt.nokia.com/doc/qt-4.8 /qtcore.html)**不在** [QtGui](http://developer.qt.nokia.com/doc/qt-4.8/qtgui.html)中,因此不需要'#include'或鏈接到所有的GUI庫,是嗎? –