7

我正在开发一个 PyGTK/glade 应用程序,它目前有 16 个窗口/对话框,大约 130KB,最终将有大约 25 个窗口/对话框,大约 200KB。目前,我将所有窗口存储在一个整体的空地文件中。当我运行一个窗口时,我称它为...

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

我想知道将每个窗口拆分成它自己的空地文件是否是一个更好的主意。而不是一个有 25 个窗口/对话框的林间空地文件,我有 25 个林间空地文件,每个文件有一个窗口/对话框,并像这样调用它:

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

你们认为最好的方法是什么?一种方法是否比另一种方法更耗费资源?转到单个林间空地文件的一件好事是命名小部件会更容易。例如,我将所有 OK 按钮命名为“windowxyz_ok”,但我可以将其更改为简单的“ok”。让事情变得更简单。缺点是对不同的窗口进行更改可能不太方便。

我对任何和所有争论持开放态度。谢谢!

4

4 回答 4

9

在我的项目中,每个林间空地文件总是有一个窗口。我会为您的项目推荐相同的方法。

以下是两个主要原因:

  • 它会更快并且使用更少的内存,因为每次调用 gtk.glade.XML() 都会解析整个事情。当然,您可以传入 root 参数以避免为所有窗口创建小部件树,但您仍然必须解析所有 XML,即使您对它不感兴趣。
  • 从概念上讲,如果每个窗口有一个顶层,则更容易理解。您只需查看文件名即可轻松知道给定对话框/窗口所在的文件名。
于 2008-12-04T00:13:52.723 回答
2

您是否花了一些时间来确定它是否有所作为?

问题是,据我了解,Glade 在解析 XML 文件时总是会创建所有小部件,因此如果您打开 XML 文件并仅读取单个小部件,则会浪费大量资源。

另一个问题是,如果您想拥有该小部件的另一个实例,则需要重新读取该文件。

我之前的做法是将所有只创建一次的小部件(如关于窗口、主窗口等)放入一个 glade 文件,并为需要多次创建的小部件单独的 glade 文件。

于 2008-12-03T10:17:28.463 回答
0

我为不同的窗户使用不同的林间空地文件。但我在同一个林间空地文件中保持与窗口相关联的对话框。正如你所说,命名问题很烦人。

于 2008-12-03T16:49:09.313 回答
0

我有一个带有 2 个窗口的林间空地文件。它的大小约为 450kb,我没有看到使用带有 GTKmm 的 libglademm 有任何减速。

于 2009-03-13T21:42:47.880 回答