Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 1 sur 1
  1. #1

    Date d'inscription
    juillet 2018
    Messages
    3

    Unhappy probleme de lecture du fichier .qgs

    Bonjour à tous,
    j'ouvre qgis 3.2, j'ai intégré un plugin qui par l'appui d'un bouton doit m'ouvrir un projet existant et contenant
    le plugin TimeManager.

    project_path = 'C:/presentation-29-6-18/presentation-16-7-18.qgs'
    QgsProject.instance().clear
    QgsProject.instance().read (project_path )

    Le problème quand le projet s'ouvre, les couches sont bien apparentes, le plugin TimeManager aussi,
    mais la configuration de TimeManager n'a pas été conservée.
    Je pense que QgsProject.instance().read n'arrive pas à interpréter les valeurs du fichier xml (fichier du projet.qgs)

    <TimeManager>
    <labelSize type="int">25</labelSize>
    <loopAnimation type="int">0</loopAnimation>
    <timeFrameSize type="int">1</timeFrameSize>
    <timeLayerManager type="QString">1987-11-18 00:00:00;2046-04-14 00:00:00;2009-02-17 12:47:49</timeLayerManager>
    <self.layerName type="QString"></self.layerName>
    <self..layerName type="QString"></self..layerName>
    <animationFrameLength type="int">100</animationFrameLength>
    <self type="QString"></self>
    <mode type="int">0</mode>
    <labelPlacement type="QString">SE</labelPlacement>
    <digits type="int">4</digits>
    <currentMapTimePosition type="QString">2009-02-17 12:47:49</currentMapTimePosition>
    <labelBgColor type="QString">#ffffff</labelBgColor>
    <active type="int">1</active>
    <playBackwards type="int">0</playBackwards>
    <labelFormat type="QString">%Y</labelFormat>
    <timeLayerList type="QStringList">
    <value>src_2018_v5_d8b24587_22e4_425b_8f04_cedd2e1 dc84a;;datearrete;datevalidite;True;%Y/%m/%d;0;;False;No interpolation (faster);True;False;False</value>
    </timeLayerList>
    <timeFrameType type="QString">years</timeFrameType>
    <labelColor type="QString">#000000</labelColor>
    <labelFont type="QString">Arial</labelFont>
    </TimeManager>

    J'ai trouver une piste sur le net, mais je n'arrive pas à l'appliquer:

    Writing and Reading Python Plugin Settings to/from QGIS Project File

    For some plugins it’s necessary to save the settings inside the QGIS project file. Saving is done with this simple one-liner:
    1 QgsProject.instance().writeEntry(pluginName, setting, value)


    Then you just need to save the project.
    Reading is performed with one of the following functions:
    1
    2
    3
    4
    5
    QgsProject.instance().readEntry (pluginName, setting) # for strings
    QgsProject.instance().readNumEntry (pluginName, setting)
    QgsProject.instance().readDoubleEntry (pluginName, setting)
    QgsProject.instance().readBoolEntry (pluginName, setting)
    QgsProject.instance().readListEntry (pluginName, setting)


    You’ll find the corresponding API documentation at: http://doc.qgis.org/stable/classQgsProject.html. As you can see, you can only read/write simple data types. To allow the plugin developer to save more complex plugin settings, I filed an enhancement request.
    To handle all those different read functions in a convenient way, I created the following functions:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def readSetting(self,func,setting):
    """read a plugin setting from QgsProject instance"""
    value,ok = func('pluginName',setting)
    if ok:
    return value
    else:
    return None

    def readSettings(self,setting,value):
    """read plugin settings from QgsProject instance"""
    # map data types to function names
    prj = QgsProject.instance()
    functions = { 'str' : prj.readEntry,
    'int' : prj.readNumEntry,
    'float' : prj.readDoubleEntry,
    'bool' : prj.readBoolEntry,
    'pyqtWrapperType' : prj.readListEntry # QStringList
    }

    dataType = type(value).__name__
    return = self.readSetting(functions[dataType],setting)


    readSettings() has to be supplied with the name of the setting and an example or default value for the setting (from which we can determine the data type of the setting). Of course this can be done in many different ways. In Time Manager plugin, readSettings() receives a dictionary of all settings that have to be read. The function then loops through the dictionary and reads the available settings.


    Pouvez vous m'aider?

    Cordialement.

    laboetie

 

 

Discussions similaires

  1. [GeoNetwork] Lecture fichier de barthymétrie de format raw
    Par NABOBO dans le forum Assistance Technique
    Réponses: 0
    Dernier message: 23/03/2015, 17h12
  2. [QGIS 1.x] Lecture et écriture d'une géodatabase fichier
    Par Imas dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 10/06/2013, 16h01
  3. [MapBasic 9.x] Lecture / écriture dans un fichier txt
    Par sigsadja dans le forum Programmation
    Réponses: 11
    Dernier message: 18/08/2008, 12h05
  4. Réponses: 16
    Dernier message: 19/07/2007, 10h06
  5. [Access 2003] VB6 : Lecture/ecriture de fichier .txt
    Par ErwanD dans le forum Assistance et Programmation
    Réponses: 3
    Dernier message: 23/06/2006, 19h32

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •