2010-01-27 6 views

ответ

0

Ну я нашел хороший пример о нем в here, вы также должны использовать PyKDE4 не только PyQt.

5

Учебник в командной Python строки

Сначала я покажу, как KWallet можно использовать из командной Python строки для чтения и записи пароль:

$ python 

# We import the necessary modules. 
>>> from PyKDE4.kdeui import KWallet 
>>> from PyQt4 import QtGui 

# We create a QApplication. We will not use it, but otherwise 
# we would get a "QEventLoop: Cannot be used without 
# QApplication" error message. 
>>> app = QtGui.QApplication([]) 

# We open the wallet. 
>>> wallet = KWallet.Wallet.openWallet(
       KWallet.Wallet.LocalWallet(), 0) 

# We create a folder in which we will store our password, 
# and set it as current. 
>>> wallet.createFolder('myfolder') 
True 
>>> wallet.hasFolder('myfolder') 
True 
>>> wallet.setFolder('myfolder') 
True 

# We read the password (which does not exist yet), write it, 
# and read it again. 
>>> wallet.readPassword('mykey') 
(0, PyQt4.QtCore.QString(u'')) 
>>> wallet.writePassword('mykey', 'mypassword') 
0 
>>> wallet.readPassword('mykey') 
(0, PyQt4.QtCore.QString(u'mypassword')) 

Учебник как модуль Python

Обычно вы хотите создать несколько простых функций для обтекания методов kwallet. Следующий модуль Python может открыть кошелек, получить и установить пароль:

#!/usr/bin/python 

from PyKDE4.kdeui import KWallet 
from PyQt4 import QtGui 

def open_wallet(): 
    app = QtGui.QApplication([]) 
    wallet = KWallet.Wallet.openWallet(
       KWallet.Wallet.LocalWallet(), 0) 
    if not wallet.hasFolder('kwallet_example'): 
     wallet.createFolder('kwallet_example') 
    wallet.setFolder('kwallet_example') 
    return wallet 

def get_password(wallet): 
    key, qstr_password = wallet.readPassword('mykey') 

    # converting the password from PyQt4.QtCore.QString to str 
    return str(qstr_password) 

def set_password(wallet, password): 
    wallet.writePassword('mykey', password) 

Он может быть использован следующим образом:

$ python 
>>> import kwallet_example 
>>> wallet = kwallet_example.open_wallet() 
>>> kwallet_example.set_password(wallet, 'mypass') 
>>> kwallet_example.get_password(wallet)