我嘗試加載到插件。如果他們加載成功,那麼我必須連接返回的小部件。QObject :: connect:無法連接(null)
使用一個插件我創建一個動作並將其添加到菜單,另一個插件創建一個標籤並將其添加到窗口。即使我在運行時(應用程序加載插件時)出現此錯誤,這兩個小部件也會創建並可見。但他們之間沒有任何聯繫。
這是我嘗試連接部件
QObject *plugin = pluginLoader.instance();
if (plugin) {
myAction = qobject_cast<ActionInterface *>(plugin);
if (myAction) {
pluginMenu->addAction(myAction->newAction());
verify ++;
}
myLabel = qobject_cast<LabelInterface *>(plugin);
if (myLabel) {
layout->addWidget(myLabel->newLabel());
verify++;
}
if (verify == 2)
connect(myAction, SIGNAL(pushMyAction()),
myLabel, SLOT(setTextforLabel()));
}
...
}
錯誤消息:
的QObject ::連接:無法連接(空):: pushMyAction()來LabelPlugin :: setTextforLabel( )
我們在這裏沒有看到將驗證設置爲0的位置。因此,也許您從前一個驗證中提取值爲1 ...它會加1,因爲myLabel不是null,然後即使myAction爲null,也可以在2處擁有它。否則,如果驗證是2和myAction爲空...這裏有其他錯誤... – HostileFork 2011-12-13 17:37:25
@HostileFork我在類的構造函數中設置它MainWindow :: MainWindow(){驗證= 0; ...} – develoops 2011-12-13 17:42:15