我有一個工作示例,它使用信號和插槽在Qt共享庫(dll)和Qt應用程序之間進行通信。我的問題是,這是首選的方式,還是有更好的方式來處理qt共享庫。以下是詳細信息:在Qt共享庫和Qt應用程序之間使用信號和插槽
我開發的應用程序具有偵聽網絡上的設備和更新GUI的功能。共享庫處理偵聽網絡上的設備,Qt應用程序模塊處理GUI部分。
我有使用Q_DECL_EXPORT/Q_DECL_IMPORT導出共享庫和應用程序使用的公用類的宏。這個公共類是從QObject派生的,並定義了Qt信號和時隙。這個公共類被構建爲共享庫(dll)的一部分。
Qt的應用程序加載在編譯時的共享庫和用於公共類創建一個實例,並使用該實例以建立Qt應用程序和Qt共享庫模塊之間的信號和時隙,如下所示:
Qt的期間應用程序初始化:
// Create shared libray API class instance to access dll module features.
mp_sharedlib_api = new shareLibAPIClass(this);
後來在Qt應用程序:
// Connect signal/slot between shared library and Qt application
connect(
mp_sharedlib_api , SIGNAL(SignalUpdateGUIStatus(QString)),
this, SLOT(SlotUpdateGUIStatus(QString))
);
這是d的正確方法開發一個使用共享庫的Qt項目?共享庫的API文檔包含哪些內容? API文檔是否列出了共享庫發送/處理的信號和插槽?
在此先感謝。
我想你忘記了Qt本身就是一個共享庫。那麼爲什麼你會認爲信號和共享庫可能會有問題呢? –