从通过 unix 套接字路径连接的接口捕获信号

问题描述

我有一个接口,它是通过 unix socket 连接的。 接口包含信号,我想用插槽连接这些信号。 这是代码:

QDBusConnection socketConnection = QDBusConnection::connectToPeer(transactionUpdatePath,QStringLiteral("org.projectatomic.rpmostree1"));
m_transaction = new OrgProjectatomicRpmostree1TransactionInterface (QStringLiteral("org.projectatomic.rpmostree1"),QStringLiteral("/"),socketConnection,this);

transactionUpdatePath 是 unix:abstract=/tmp/rpm-ostree/dbus-ffRe5qiE,有一种方法可以给我路径,就像这样。 因此,通过使用此路径,我可以连接到 m_transaction

接口

此接口包含我想与插槽连接的信号。 这是我所做的,但它不起作用:

bool flag1 = socketConnection.connect(QStringLiteral("org.projectatomic.rpmostree1"),QStringLiteral("org.projectatomic.rpmostree1.Transaction"),QStringLiteral("Finished"),this,SLOT(finishTransaction(bool,QString)));

定义的插槽在这里:

void RpmOstreeTransaction::finishTransaction(bool sucess,QString error_message)
{
    if(sucess){
       AbstractResource::State newState;
       switch(role()) {
       case InstallRole:
       case ChangeAddonsRole:
          newState = AbstractResource::Installed;
          break;
       case RemoveRole:
          newState = AbstractResource::None;
          break;
       } 
       m_app->setState(newState);
       setStatus(DoneStatus);
       deleteLater();
    }
    else {
        qWarning() << error_message << Qt::endl;
        setStatus(DoneWithErrorStatus);
    }
}

我不知道为什么它不起作用,我还尝试了另一种将信号与插槽连接的方法,就是这样:(但它也不起作用)

 connect(m_transaction,&OrgProjectatomicRpmostree1TransactionInterface::Finished,&RpmOstreeTransaction::finishTransaction);

任何建议。
谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)