プラグインにロードしようとしています。それらが成功すると、返されたウィジェットを接続する必要があります。QObject :: connect:接続できません(null)
1つのプラグインでは、アクションを作成してメニューに追加します。別のプラグインでは、ラベルを作成してウィンドウに追加します。実行時にこのエラーが発生しても(プラグインがロードされると)、これらの2つのウィジェットが作成され、表示されます。しかし、それらの間には何の関係もありません。
私は
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 ::接続:接続できません(ヌル):: LabelPlugin :: setTextforLabelにpushMyAction()( )
ここでは、ベリファイを0に設定すると表示されません。したがって、前回のベリファイから1の値を引き継いでいます。 nullの場合、myActionがnullであっても2になります。それ以外の場合は、verifyが2でmyActionがnullの場合は...他の何かがここで間違っています... – HostileFork
@HostileForkクラスコンストラクタMainWindow :: MainWindow()に設定します。 ...} – develoops
このコードでは、 'myAction'と' myLabel'の両方がnullでないことを確認するために検証カウントを使用している点はありませんか?このコードを実行するたびにリセットしないと、その保証は提供されません。ヌルオブジェクトポインタは接続できません。 – HostileFork