【问题标题】:qml access to kde's kwalletqml 访问kde的kwallet
【发布时间】:2014-06-15 09:42:12
【问题描述】:

我正在使用 qml 编写一个 kde plasmoid。它是一个小部件,使用运营商提供的 api 显示我国最大的移动用户之一的移动使用情况。为了获取数据,必须使用电话号码+密码进行请求,我想使用 kwallet 将“帐户”存储在此小部件的某个 kwallet 文件夹中。 问题是,如果可能的话,我如何在基于 qml/javascript 的小部件中使用 kwallet?我在网上找不到任何信息。我使用 kwallet 找到了这个 plasmoid:http://kde-look.org/content/show.php/gmail-plasmoid?content=101229 但是这个是用 python 编写的,并且正在导入一些 python kde 库,所以我不能真正使用它。任何建议甚至是一些有用 api 的链接都会很棒。

【问题讨论】:

    标签: javascript widget qml kde


    【解决方案1】:

    可以在命令行上使用 qdbus 访问 Kwallet。显然有一种方法可以使用扩展名LaunchApp 在 Javascript plasmoids 中进行命令行调用,如下所示:

    Button {
        onButtonClick: plasmoid.runCommand("qdbus",
            ["<add-missing-parameters-here>"]);
    }
    

    要使扩展程序正常工作,您需要将此行添加到桌面文件中:

    X-Plasma-RequiredExtensions=LaunchApp
    

    确切的命令行调用如下所示:

    1. 打电话打开钱包

      qdbus org.kde.kwalletd /modules/kwalletd org.kde.KWallet.open <wallet name> 0 "<your application name>"
      
    2. 使用返回的 ID 访问密码

      qdbus org.kde.kwalletd /modules/kwalletd readPasswordList <wallet-id> kmail "<entry name>" "<your application name>"
      

    我还没有尝试过,但理论上它可以工作。

    链接:

    【讨论】:

    • 谢谢,后来我发现了一些代码也使用了runCommand,但没有尝试,因为我决定我可能会在python中编写数据引擎,然后从qml中使用它。但现在我也要试试这个:)
    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2012-03-19
    • 2017-05-29
    相关资源
    最近更新 更多