【问题标题】:Python Gtk Glade app structure. What are the best practises?Python Gtk Glade 应用程序结构。最好的做法是什么?
【发布时间】:2018-09-24 18:13:26
【问题描述】:

自从我发现 Python 以来,我已经使用 Glade + Python + Gtk 创建了四个小应用程序。对于它们中的每一个,结构都是一个文件夹,带有应用程序的名称,包含:

  • “图片”文件夹
  • 一个主 .py 文件,其中包含处理所有项目窗口的所有类
  • 包含所有窗口(主应用程序窗口、关于对话框、配置对话框等)的 .glade 文件
  • style.css 文件
  • (如有必要,其他文件为 sqlite 文件和/或 json 文件)

现在我想知道这个组织是否是一个好的做法。因为我看过一个视频教程,其中每个窗口都有自己的“.ui”文件和.py 文件。此外,其他应用似乎也是这样组织的,Anjuta 项目似乎也遵循这一规则。

此外,展示如何创建 Python-Gtk-Glade 应用程序的教程几乎都是单窗口项目...

所以我的问题是:你如何组织你的 Python-Gtk-Glade 项目或者最好的方法是什么?

提前致谢。

【问题讨论】:

    标签: python gtk structure project glade


    【解决方案1】:

    您设置应用的方式将取决于您的偏好(编码风格)、应用的大小和应用的用途。但是,这里有几个注意事项:

    Python 代码的总行数会超过 1000 行吗?超过 1000 行的文件将难以导航。我知道代码折叠、sn-ps 等帮助,但仍然。

    如果您有多个 GtkWindow,请将每个窗口的 .ui 和 .py 分开放置。这有助于跟踪错误或添加功能。您提到了 sqlite,如果文件在某种程度上特定于用途,那么文件中的 sql 查询在 5 年后更容易掌握。如果将对话框与父窗口放在同一个 ui 文件中,则使用 set_transient_for 和类似的编程会更容易。在 .ui 文件中有多个 GtkWindow 会使拖放小部件重新排序变得很痛苦。

    应用程序代码的某些部分是否可重复使用?如果您发现在几个不同的文件中复制了具有不同目的的功能,请创建一个类或函数来简化该功能(仅适用于多文件设置)。

    最后,当您的包含 .ui 和 .py 文件的文件夹开始变大(?25 - 50 个文件?)时,您可能需要一个包含一组具有类似功能的文件的子文件夹。这不是一成不变的。 Nemo 不经常使用这个,其他人使用。

    我使用 Python + Gtk 积极开发自己的业务管理软件,发现 here。我发现上述原则对我很有效。

    我认为 Gtk 的文档通常显示单个文件设置的原因是因为它们只是概念证明,而不是最好的应用程序管理教程。应用程序管理(无论如何对我来说)是反复试验,并且来自研究其他开源应用程序。

    免责声明:这些建议仅代表我的意见。它们不受 Python、Gtk 或 Glade 的认可。您需要根据您的用例评估这些建议。

    【讨论】:

    • 感谢您花时间回答。是的,我的应用程序超过 1000 行。我试图将类和窗口分开在不同的文件中,但是当我不得不为窗口设置一个transcient时,我被卡住了,正如你所写的。我会检查你的应用程序并将其作为模型。 :)
    猜你喜欢
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多