Python Gtk Glade 应用程序结构,最佳实践是什么?

4
自从我发现Python以来,我已经用Glade + Python + Gtk创建了四个小应用程序。对于每个应用程序,结构都是一个文件夹,名称为应用程序名称,其中包含:
  • 一个“images”文件夹
  • 一个主要的.py文件,其中包含处理所有项目窗口的所有类
  • 一个.glade文件,其中包含所有窗口(主应用程序窗口、关于对话框、配置对话框等)
  • 一个style.css文件
  • (如果需要,还有其他文件,如sqlite文件和/或json文件)
现在我想知道这种组织方式是否是一种良好的实践。因为我看过一个视频教程,在其中每个窗口都有自己的“.ui”文件和.py文件。此外,其他应用程序似乎也是这样组织的,Anjuta项目也似乎遵循这个规则。
此外,显示如何创建Python-Gtk-Glade应用程序的教程几乎都是单窗口项目……
所以我的问题是:您如何组织您的Python-Gtk-Glade项目,或者做到最好的方式是什么?
提前致谢。
1个回答

3
您设置应用程序的方式将由您的偏好(编程风格),应用程序的大小和目的来决定。但是,以下是需要考虑的一些问题:
Python代码总行数是否大于1000行? 1000行以上的文件在导航时会很难操作。我知道代码折叠,代码片段等有所帮助,但仍然如此。
如果您有多个GtkWindow,请将每个窗口的.ui和.py分开。这有助于调试错误或添加功能。您提到sqlite,如果文件中包含sql查询,则5年后更易于掌握,前提是文件具有某种特定目的。如果您将对话框放在与父窗口相同的ui文件中,则使用set_transient_for等编程更加容易。在一个.ui文件中拥有多个GtkWindow将使拖放小部件重新排序变得麻烦。
应用程序代码的哪些部分可以重复使用?如果您发现在几个具有不同目的的文件中重复了几个功能,请创建一个类或函数以简化该功能(仅适用于多文件设置)。
最后,在您的带有.ui和.py文件的文件夹开始变大(?25-50个文件?)时,您可能需要一个子文件夹,其中包含具有类似功能的一组文件。这并非必须。Nemo没有经常使用这种方法,其他人则有。
我正在使用Python + Gtk开发自己的业务管理软件,可以在此处找到:https://github.com/benreu/PyGtk-Posting。我发现上述原则对我很有效。
我认为,Gtk文档通常显示单文件设置的原因是它们仅仅是概念验证,而不是最佳应用程序管理教程。应用程序管理(对我来说)是试错,并通过研究其他开源应用程序来实现的。
免责声明:这些建议仅代表我的意见。它们未经Python、Gtk或Glade的认可。您需要根据您的用例评估这些建议。

感谢您花时间回答。是的,我的应用程序超过1000行。我尝试将类和窗口分别放在不同的文件中,但当我需要为窗口设置transient时,我卡住了,就像你写的那样。我会检查您的应用程序并以此为模型。 :) - Veilleuse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接