vonu 发表于 2023-2-8 10:41:55

desktop文件通过dbus如何打开

请问一下,系统如何通过dbus接口打开desktop文件

devnqiu 发表于 2023-2-8 14:01:18

使用interface call方法 供参考
QDBusReply<bool> devStatus = QDBusInterface->call("function_name", QString desktopFile,QStringList args);

vonu 发表于 2023-2-8 14:06:12

devnqiu 发表于 2023-2-8 14:01
使用interface call方法 供参考
QDBusReply devStatus = QDBusInterface->call("function_name", QString...

麒麟系统是否提供了function_name

devnqiu 发表于 2023-2-8 14:12:02

本帖最后由 devnqiu 于 2023-2-8 14:13 编辑

vonu 发表于 2023-2-8 14:06
麒麟系统是否提供了function_name
这是你自己实现的函数.
bool ScreenShotShortcut::LaunchAppWithArguments(QString desktopFile,QStringList args)
{
    if (m_appManagerDbusInterface != nullptr) {
      QDBusReply<bool> devStatus = m_appManagerDbusInterface->call("LaunchAppWithArguments", desktopFile, args);
      //qDebug() << "use launch" << "size";
      return devStatus;
    } else {
      qWarning()<<"LaunchAppWithArguments is failed,return false";
      return false;
    }
}


gitee上有ukui-sidebar的源码. 里面有注册dbus服务,客户端通信的过程.
你可以研究一下.

vonu 发表于 2023-2-8 15:17:43

devnqiu 发表于 2023-2-8 14:12
vonu 发表于 2023-2-8 14:06
麒麟系统是否提供了function_name
这是你自己实现的函数.


我看一下代码,他是通过dbus调用的,但是我用d-feet查看,没有找到对应的dbus服务,是我的系统版本低吗

devnqiu 发表于 2023-2-8 19:56:15

vonu 发表于 2023-2-8 15:17
我看一下代码,他是通过dbus调用的,但是我用d-feet查看,没有找到对应的dbus服务,是我的系统版本低吗

是这样的..我的系统是openkylin
ukui-sidebar是openkylin的一个侧边栏组件.
这里的com.kylin.*几个服务是Session bus不是 system bus
我用QDBusViewer可以看到, 你用QDBusViewer 试试.
页: [1]
查看完整版本: desktop文件通过dbus如何打开