几年以来,我一直在用 Python 编写编辑前端,我厌倦了每次都对窗口或对话框的每个 UI 细节进行微观管理。
有没有一种技术可以让我指定 GTK+ Glade 设计的界面与 SQLite 数据库的表和记录之间的关系来完成所有中间人的工作?它应该让我免于手动编写事件处理程序、输入评估器和视图更新的工作。
有问题的技术只是示例,但我想尽可能坚持使用 Python。
几年以来,我一直在用 Python 编写编辑前端,我厌倦了每次都对窗口或对话框的每个 UI 细节进行微观管理。
有没有一种技术可以让我指定 GTK+ Glade 设计的界面与 SQLite 数据库的表和记录之间的关系来完成所有中间人的工作?它应该让我免于手动编写事件处理程序、输入评估器和视图更新的工作。
有问题的技术只是示例,但我想尽可能坚持使用 Python。
PyQt 及其模型可以为您自动执行其中的一些任务(在一定程度上偏离课程,例如用数据库中的数据填充小部件并处理大多数小部件行为、缓冲等)。
如果您想要一种更加面向对象的方法来处理 SQL,您可以查看面向 ORM 的解决方案(例如 SQLAlchemy)。
Dabo建立在 wxPython 之上,因此您可能不喜欢它,但它的设计目的是使将 GUI 与数据库联系起来变得容易,所以如果您还没有的话,我建议您检查一下。特别是,它有很好的工具将小部件与数据联系起来,并处理许多常见的 GUI 开发案例。
wxGlade可能会有所帮助,虽然我自己没有使用过它,所以我不会根据经验说话。
Boa Constructor显然有一个 wxPython GUI 构建器,还有PythonCard,尽管这两个项目的开发似乎已经停滞不前。
特质可能是您的一个不错的选择。 http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html
尽管将 UI 映射到对象很简单,但合并 SQLAlchemy 以实现持久性似乎并不太牵强。
有一本关于wxPython的好书,《wxPython in Action》,对于其他一些解决方案来说是不能说的。不敲别人。过去我曾成功地使用 wxPython 进行开发,它附带了一组很棒的演示应用程序,其中包含您可以随意借用的源代码。
我为 wxPython 应用程序找到的最好的 UI 设计师是一个商业的,Anthemion DialogBlocks。它是由 wxPython 程序员之一编写的,物有所值。UI 设计的其他解决方案包括 wxGlade(我发现它有用但没有特色)和 Boa Constructor(没用过)。Wing IDE 可能也有一个。我相信,Stani 的 Python 编辑器捆绑了 wxGlade。还有很多其他项目并没有真正起作用或相当陈旧。
就 SQL 自动化而言,正如另一位回答者所说,我会研究 SQL alchemy,但小型应用程序的学习曲线可能太多,最好直接使用 odbc。最好的 odbc api 是 Django 使用的,pyodbc。
自从我使用这些工具开发以来已经有一段时间了,所以每个工具可能都有更新的东西,但在当时,这些工具在我看来绝对是最好的。
我在 wxPython 上取得了很多成功,但那是几年前的事了,可能会有更好的新解决方案......
好的,这是一个非常规的解决方案,但为自己编写一个代码生成器。我已经用Mako做过几次了。因此,在我的情况下,我会自动检查一个表,它包含哪些列以及类型并从中生成类。它需要更多的前期工作,但完全符合您的要求,并且可以在后续项目中重复使用。