2

背景:我有一个我用 Python27x 编写的桌面应用程序,它wxPython用于 UI 并requests用于xml.etree.ElementTreeRESTful服务检索开放数据并以有意义的方式向用户呈现数据。

我目前正在使用PySide. 我相当确定我可以在其中展示我的数据糖果,HTML5并且我最终想提供一个使用web2pyand的网络应用程序JavaScript

和版本PySideweb2py需要支持:

  • Throttle获取我为处理服务的公平使用策略而制作的对象的锁定。
  • 在带有链接或按钮的表格中显示分析的数据,以检索或下载更多相关数据。
  • 显示相关数据列表并在组中任何成员的鼠标悬停时突出显示项目组。
  • 呈现文本文档并使用NLTK.
  • 提供有关数据的各种统计数据的基本图形和图表。

问题:鉴于我已经告诉您有关我的应用程序的内容,并且假设web2py并且HTML5可以满足我的用户界面/演示需求,我可以采取哪些步骤/小部件在使我的PySide桌面应用程序移植到时可以最大限度地重复使用web2py? 在编写桌面版本时我应该确保避免什么?

4

2 回答 2

2

您需要将数据和数据处理与用户界面分开。Qt(以及 PySide)非常关注这种模型视图方法(参见例如http://qt-project.org/doc/qt-4.8/modelview.html),并提供模型来组织您的数据,并且视图来呈现数据。在 Qt 中,这种方法允许在同一数据集上轻松使用多个视图,而不必担心如何获取视图中的数据。

诚然,Qt 模型需要一些时间来适应,但上述教程应该为您提供一些指导和参考,以帮助您入门。在您的情况下,我会采用以下方法:

  • 查找/扩展合适的 Qt 模型来管理您的数据
  • 在 PySide 应用程序中将此数据与标准/自定义视图一起使用
  • 开发基于 web2py 的视图以在您的 webapp 中呈现数据

我不熟悉 web2py,所以我无法评估最后一步的难易程度。但是,我建议您花一些时间(如果有的话)来了解 Qt Model-View 框架,因为它可以在未来为您节省大量时间(至少,根据我的经验)。

于 2013-09-06T13:57:01.127 回答
2

在我看来,你可能想多了。

基本上,您将有两种向最终用户呈现数据的方法;

1) 通过图形用户界面

2) 通过您的 HTML5 糖果

当然,限制因素将是 web2py/HTML5 对呈现数据的任何限制(如果有的话)?

如果我正在编写这样一个应用程序,它同时使用 PySide 和 web2py 来呈现相同的数据,但使用它们各自的方法(gui、web),我可能希望以一种你可以提供的方式抽象要呈现的数据将相同的流输入到 GUI 函数或 Web 函数中,每个函数都将其接收并使用它们各自的方法来呈现数据。

我能想到的另一种选择是在您的 GUI 演示文稿中嵌入 Web 视图。也许您可以不必担心使用/避免使用哪些小部件,只需在嵌入式 Web 视图中使用您的 html5-candy?

于 2013-09-03T07:34:38.977 回答