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