我正在开发一个 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减速。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top