Manual de usuario de calibre, Publicación 2.73.0
Save the settings specified by the user with config _ widget.
: param config _ widget: The widget returned by: meth: `config _ widget`. ''' config _ widget. save _ settings()
# Apply the changes ac = self. actual _ plugin _ if ac is not None: ac. apply _ settings()
calibre tiene muchas maneras diferentes de almacenar los datos de configuración( un legado de su larga historia). El método recomendado es usar la clase JSONConfig, que almacena la información de configuración en un archivo. json.
El código para gestionar los datos de configuración en el complemento de demostración está en config. py: from PyQt5. Qt import QWidget, QHBoxLayout, QLabel, QLineEdit from calibre. utils. config import JSONConfig
# This is where all preferences for this plugin will be stored # Remember that this name( i. e. plugins / interface _ demo) is also # in a global namespace, so make it as unique as possible. # You should always prefix your config file name with plugins /, # so as to ensure you dont accidentally clobber a calibre config file prefs = JSONConfig(' plugins / interface _ demo ')
# Set defaults prefs. defaults [' hello _ world _ msg '] = ' Hello, World!'
class ConfigWidget( QWidget):
def __ init __( self): QWidget.__ init __( self) self. l = QHBoxLayout() self. setLayout( self. l)
self. label = QLabel(' Hello world & message:') self. l. addWidget( self. label)
self. msg = QLineEdit( self) self. msg. setText( prefs [' hello _ world _ msg ']) self. l. addWidget( self. msg) self. label. setBuddy( self. msg)
def save _ settings( self): prefs [' hello _ world _ msg '] = unicode( self. msg. text())
El objeto prefs está ahora disponible en todo el código del complemento simplemente con: from calibre _ plugins. interface _ demo. config import prefs
Puede observar que el objeto prefs se usa en main. py:
def config( self): self. do _ user _ config( parent = self) # Apply the changes
1.9. Cursillos 195