背景:我有一个桌面应用,我用Python27x编写,使用wxPython
用于用户界面,requests
用xml.etree.ElementTree
用于检索开放数据来自RESTful服务,并以有意义的方式向用户提供数据。
我目前正在使用PySide
重新编写我的应用。我相当肯定我可以在HTML5
中展示我的数据,我最终希望使用web2py
和JavaScript
提供网络应用。
PySide
和web2py
版本都需要支持:
Throttle
对象。NLTK
提供文字文档并提供关键字/词性标注的自动搜索/突出显示。 问题:鉴于我已经告诉过您有关我的应用的内容,并假设web2py
和HTML5
可以满足我的用户界面/演示需求,我可以采取哪些步骤我应该使用take / widgets制作我的PySide
桌面应用,以便在移植到web2py
时最大限度地重复使用?在编写桌面版时我应该避免什么?
答案 0 :(得分:2)
在我看来,你可能会过度思考这个问题。
基本上,您将有两种向最终用户呈现数据的方法;
1)通过GUI
2)通过HTML5-candy
当然,限制因素是任何限制(如果有的话),web2py / HTML5会在呈现数据时放置吗?
如果我正在编写这样一个应用程序,它使用PySide和web2py来呈现相同的数据但是使用它们各自的方法(gui,web),我可能想要抽象出来的数据以这样的方式呈现您可以将相同的流提供给GUI功能或Web功能,每个功能都可以使用它们各自的方法来显示数据。
我能想到的另一种选择是在GUI演示文稿中嵌入Web视图。也许你可以放弃使用/避免使用什么小部件的很多问题,只需在嵌入式Web视图中使用你的html5-candy?
答案 1 :(得分:2)
您需要将数据和数据处理与用户界面分开。 Qt(以及PySide)非常关注这种模型 - 视图方法(参见例如http://qt-project.org/doc/qt-4.8/modelview.html),并提供组织数据的模型和呈现数据的视图。在Qt中,这种方法允许在同一数据集上轻松使用多个视图,而不必担心如何在视图中获取数据。
不可否认,Qt模型需要一些时间来习惯,但上述教程应该为您提供一些指导和参考,以帮助您入门。在你的情况下,我会采取以下方法:
我不熟悉web2py,所以我无法评估最后一步的难度和难度。但是,我建议花一些时间(如果你有的话)来了解Qt Model-View框架,因为它可以为你节省大量的时间(至少,根据我的经验)。