2014-04-29 21 views
0

我正在用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會很好。qml訪問kde的kwallet

回答

0

可以在命令行上使用qdbus訪問Kwallet。而且很顯然,有一種方法,使在Javascript等離子體團的命令行調用使用擴展LaunchApp,像這樣:

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>" 
    

我還沒有嘗試過這一點,但在理論上它可以工作。

鏈接:

+0

謝謝,我發現了一些代碼晚些時候也使用runCommand,但沒有嘗試它,因爲我決定我可能會在python中編寫dataengine,然後從qml中使用它。但現在我要試試這個以及:) – cotko