Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle a glade project with many windows

I'm working on a PyGTK/glade application that currently has 16 windows/dialogs and is about 130KB, and will eventually have around 25 windows/dialogs and be around 200KB. Currently, I'm storing all the windows in one monolithic glade file. When I run a window I call it like...

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

I wonder if it would be a better idea to split each window into it's own glade file. Instead of one glade file with 25 windows/dialogs I'd have 25 glade files with one window/dialog each and call it like so:

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

What do you guys think is the best way to do this? Is one method more resource intensive than another? One thing that would be nice about going to individual glade files is that naming widgets would be easier. For example, I name all my OK buttons "windowxyz_ok", but I could change it to simply "ok" instead. Makes things simpler. The downside is that it may be a bit less convenient to make changes to different windows.

I'm open to any and all arguments. Thanks!

like image 766
Adam Plumb Avatar asked Dec 03 '08 01:12

Adam Plumb


1 Answers

In my projects, I always have one window per glade file. I'd recommend the same for your project.

The following are the two main reasons:

  • It will be faster and use less memory, since each call to gtk.glade.XML() parses the whole thing. Sure you can pass in the root argument to avoid creating the widget tree for all windows, but you'd still have to parse all the XML, even if you're not interested in it.
  • Conceptually its easier to understand if have one toplevel per window. You easily know which filename a given dialog/window is in just by looking at the filename.
like image 50
Johan Dahlin Avatar answered Sep 23 '22 03:09

Johan Dahlin