Question

Je travaille sur une application PyGTK / Glade qui comporte actuellement 16 fenêtres / boîtes de dialogue et environ 130 Ko. Elle comportera éventuellement environ 25 fenêtres / boîtes de dialogue et environ 200 Ko. Actuellement, je stocke toutes les fenêtres dans un fichier clair monolithique. Quand je lance une fenêtre, je l’appelle comme ça ...

self.wTree = gtk.glade.XML("interface.glade", "WindowXYZ")

Je me demande si ce serait une meilleure idée de scinder chaque fenêtre en son propre fichier Glade. Au lieu d’un fichier glade avec 25 fenêtres / dialogues, j’aurais 25 fichiers glade avec une fenêtre / un dialogue chacun et l’appeler comme suit:

self.wTree = gtk.glade.XML("windowxyz.glade")

Selon vous, quelle est la meilleure façon de procéder? Une méthode nécessite-t-elle plus de ressources que d’autres? Une des bonnes choses à faire dans les fichiers individuels Glade est qu’il serait plus facile de nommer les widgets. Par exemple, je nomme tous mes boutons OK " windowxyz_ok " ;, mais je pourrais le changer simplement en " ok " au lieu. Rend les choses plus simples. L’inconvénient est qu’il peut être un peu moins pratique d’apporter des modifications à différentes fenêtres.

Je suis ouvert à tous les arguments. Merci!

Était-ce utile?

La solution

Dans mes projets, j'ai toujours une fenêtre par fichier Glade. Je recommanderais la même chose pour votre projet.

Les deux raisons principales sont les suivantes:

  • Ce sera plus rapide et utilisera moins de mémoire, car chaque appel à gtk.glade.XML () analyse le tout. Vous pouvez bien sûr passer l'argument racine pour éviter de créer l'arborescence des widgets pour toutes les fenêtres, mais vous devrez quand même analyser tout le code XML, même si cela ne vous intéresse pas.
  • Conceptuellement, il est plus facile de comprendre si vous avez un niveau supérieur par fenêtre. Vous savez facilement en quel nom de fichier se trouve un dialogue / une fenêtre en regardant le nom de fichier.

Autres conseils

Avez-vous pris quelques temps pour savoir si cela fait une différence?

Le problème est que, pour autant que je sache, Glade crée toujours tous les widgets lors de l'analyse d'un fichier XML. Par conséquent, si vous ouvrez le fichier XML et ne lisez qu'un seul widget, vous perdez beaucoup de ressources.

L'autre problème est que vous devez relire le fichier si vous souhaitez avoir une autre instance de ce widget.

Avant, je mettais tous les widgets créés une seule fois (comme la fenêtre à propos de, la fenêtre principale, etc.) dans un fichier Glade et des fichiers Glade séparés pour les widgets devant être créés plusieurs fois.

J'utilise différents fichiers Glade pour différentes fenêtres. Mais je garde le dialogue associé à une fenêtre dans le même fichier Glade. Comme vous l'avez dit, le problème de nommage est agaçant.

J'ai un fichier Glade avec 2 fenêtres. Sa taille est d’environ 450 Ko et je n’ai pas constaté de ralentissement avec libglademm avec GTKmm.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top