题
我正在开发一个 PyGTK/glade 应用程序,目前有 16 个窗口/对话框,大小约为 130KB,最终将有大约 25 个窗口/对话框,大小约为 200KB。目前,我将所有窗口存储在一个整体林间空地文件中。当我运行一个窗口时,我称它为...
self.wTree = gtk.glade.XML("interface.glade", "WindowXYZ")
我想知道将每个窗口分成它自己的空地文件是否是一个更好的主意。我不是使用一个包含 25 个窗口/对话框的空地文件,而是使用 25 个空地文件,每个文件包含一个窗口/对话框,并像这样调用它:
self.wTree = gtk.glade.XML("windowxyz.glade")
你们认为最好的方法是什么?一种方法是否比另一种方法更消耗资源?访问单个林间空地文件的好处之一是命名小部件会更容易。例如,我将所有“确定”按钮命名为“windowxyz_ok”,但我可以将其更改为简单的“确定”。让事情变得更简单。缺点是对不同窗口进行更改可能不太方便。
我对任何和所有的争论都持开放态度。谢谢!
解决方案
在我的项目中,每个林间空地文件总是有一个窗口。我会为你的项目推荐同样的东西。
主要原因有以下两个:
- 它会更快并且使用更少的内存,因为每次调用 gtk.glade.XML() 都会解析整个事情。当然,您可以传入 root 参数来避免为所有窗口创建小部件树,但您仍然必须 解析 所有 XML,即使您对此不感兴趣。
- 从概念上讲,如果每个窗口都有一个顶层,则更容易理解。只需查看文件名,您就可以轻松知道给定对话框/窗口所在的文件名。
其他提示
你有没有采取一些时机,找出是否有差别?
问题是,据我了解,格莱德总是时会自动创建解析XML文件,因此,如果您打开XML文件和只读一个Widget,你浪费了大量的资源,所有的部件。
另外一个问题是,你需要重新读取该文件,如果你想有一个小部件的另一个实例。
我做了它之前是把已创建只有当所有部件的方式(如关于窗口,主窗口等)组合成一个林间空地文件,以及独立的空地文件小工具,需要创建若干倍。
我使用不同的空地文件不同的窗口。但我一直在同一个林间空地文件窗口相关联的对话框。正如你所说的,命名的问题是烦人。
我有2个窗口中的一个空地文件。它的大小约为450KB和我还没有看到使用libglademm与任何的gtkmm减速。
不隶属于 StackOverflow