Было бы замечательно, если бы кто-нибудь может показать мне, как использовать KWallet с PyQt4Использование KWallet в PyQt4
4
A
ответ
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)