微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从通过 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 举报,一经查实,本站将立刻删除。