Mar*_* S. 11 c# python java user-interface cross-platform
我想开发一个小型/中型跨平台应用程序(包括GUI).
我的背景:主要是带有MVC架构的Web应用程序,包括Python(Pylons + SqlAlchemy)和Java(熟悉语言,但不太喜欢它).我也知道一些C#.到目前为止,我没有GUI编程经验(Windows Forms,Swing和QT).
我计划使用SQLite进行数据存储:它似乎是一个很好的跨平台解决方案,并且具有一些强大的功能(例如,SQL Server Compact缺少的全文搜索).
我做了一些研究,这些是我最喜欢的选择:
1)QT,Python(PyQT或PySide)和SQLAlchemy
优点:
缺点:
2).NET/Mono,Windows Forms,C#,(流畅)NHibernate,System.Data.SQLite
优点:
缺点:
3)JVM,Java + Jython,Swing,SQLAlchemy
(我在情感上偏向于这个,但为了完整性而列出)
优点:
缺点:
(我排除的选项......只是为了避免讨论这些):
- wxWidgets/wxPython(现在QT是LGPL)
- GTK/PyGTK
最终应用程序的外观对我来说非常重要.上面的技术堆栈是非常不同的(PyQT,.NET WinForms,JVM Swing),需要一些时间才能熟练,所以:
您会推荐哪种替代方案?为什么?
小智 5
我是一个Python人,自己使用PyQt,我可以完全推荐它.关于你的缺点:
编译,分发和部署比较困难?
不,不是真的.对于许多项目,setup.py例如cx_Freeze 的完整可以少于30行,很少需要更改(大多数import依赖项是自动检测的,只需要指定几个无法识别的模块),然后python setup.py将构建一个独立的可执行文件.然后你可以像C++ .exe一样分发它.
没有QT经验
当我开始使用Qt(只有一点摆弄Tkinter)时,我没有显着的GUI体验,但我渐渐喜欢Qt.大多数时候,所有小部件都可以无缝地工作并完成它们应该做的事情 - 并且它们有很多用于许多目的.你可以命名,可能有一个小部件可以做到这一点,并且不会因为半成品而烦扰用户.我们被宠坏的所有好东西都在那里.
Qt 是巨大的,但PyQt文档通过合理的搜索工作回答了大多数问题.如果所有其他方法都失败并且你知道一些C++,你也可以查看Qt资源.
QT Designer不如Visual Studio Winforms设计器好
我不知道VS Winforms设计师,但我必须承认Qt Designer缺乏.我最终在设计器中制作了UI的草图,生成代码,清理它并手动处理所有剩余的细节.到目前为止一切正常,但我的项目相当小.
PS:
(现在QT是LGPL)
PyQt仍然只是GPL.PySide是LGPL,是的,但如果这是一个问题,它就不那么成熟了.该项目网站指出,"现在开始开发PySide应该是非常安全的".