在从事网页设计和Android工作之后,我终于开始使用桌面软件,直到我实际开始使用桌面设计时,我的开发周期出现了重大延迟。迄今为止的经历是一种痛苦。我决定使用Java来编写程序代码,因为那时我可以使用跨平台的API作为套接字和无线接口(我的程序非常依赖,并且可以成功运行)。
网络和Android界面设计:
HTML / CSS / Javascript; XML / Android API - >提供高度灵活性,定制化,快速的UI开发周期。
Java桌面UI设计
AWT / Swing / Swing FX - >
几乎不可能进行自定义,如问题here和here所示。当可以进行自定义时,实现它会大大增加开发时间,如here所示。它还增加了代码复杂性,在大多数情况下,解决方案是原生的,不适用于跨平台(至少Linux,Windows,Mac)。原生的默认外观并非大多数UI设计师想要的。
拖放选项很好,可以缩短开发时间,例如。 Window Builder。但是缺少添加ImageView等选项。并且,如果需要在第2点中提到自定义,则必须对自动生成的代码进行大量修改,完全否定使用Drag-n-drop。
任何人都可以向我推荐一个非常好或接近良好的UI工具,或者说UI Engine(如果存在),它具有以下功能:
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
2. Everything is cross-platform, including customization solutions.
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
我认为最好的方法或工具:
Qt Framework。非常适合用户界面,但如果它有包装,它真的很好
用于Java和其他语言。它不会减少开发时间
需要手动编码,但界面可以看起来非常好和
可用的。
WxPython。另一个好工具,如果它有其他的包装将是很酷的 语言
一些工具,可以设计具有HTML / CSS / XML类语法的桌面UI 易用性的使用。
停止考虑UI工具和
一个。只是停止抱怨并使用默认和现有工具和原生 外观。
湾手动编码所有内容,并为每个平台单独定制。
℃。在Java和程序UI中使用图形画布,就像编写场景一样 在游戏中。
如果您不这么认为,请提出建议,或者是否有更好,更简单的选择。
感谢。
答案 0 :(得分:6)
“几乎没有自定义”在我看来,短视,您可以查看here有关外观和感觉的信息,如果您有冒险精神,可以创建自己的。人们对Swing定制的许多问题更多地归结为缺乏理解然后API的不灵活性,事实上,我发现Swing是最灵活和可定制的工具包 - 恕我直言。
您还可以查看有关如何制作自己的组件的here
您必须意识到,随着您越来越接近“快速工具”,您开始降低灵活性和可定制性,因为这些工具开始锁定您。
我没有使用WindowBuilder的经验,但NetBeans表单设计器允许您包含项目类路径中的任何组件,包括您构建或下载的任何组件。
我同意Swing经常提出的一个批评是,它需要多长时间才能启动并运行。这归结为专为灵活性和可定制性而设计的API。最终开发人员需要围绕最适合他们需求的API构建库。
大多数人会告诉你避免屏幕制作者支持手动编码。就个人而言,我喜欢屏幕构建器,但我坚持认为我的初级开发人员能够很好地理解布局管理器的工作方式并构建复合布局等设计技术。
我认为很多人遇到的问题之一是忘记构建应用程序。虽然我喜欢一个外观漂亮的应用程序,但我仍然更喜欢一个实际上做它的设计并做得很好的应用程序。
IMHO
答案 1 :(得分:2)
我会谈谈Qt
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
Qt提供了一个出色的开发环境:
您可以在给定链接上阅读有关QtDesigner的信息。它为您提供了一个简单的所见即所得(WYSIWYG)类型的界面并为您生成自动代码。如果您希望UI具有多语言功能,那么国际化等其他模块也很适合使用。
2. Everything is cross-platform, including customization solutions.
Qt适用于以下平台:
外部端口
由于诺基亚在Gitorious上向社区开放了Qt源代码,各种端口一直在出现。以下是其中一些:
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
上面讨论过。
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
你不相信列表here。它们涵盖了几乎所有内容,包括Ada,Pascal,Perl,PHP,Ruby,Python和Java。
我已经提供了上述信息,假设您计划使用“本地人”制作桌面应用程序。小部件外观和感觉。我想添加更多内容。
如果您有足够的灵活性来制作并不真正具有“按钮”的用户界面。等等,更像是智能手机用户界面,除了使用Qt-Quick之外,别去其他地方。
快速,简单,强大,灵活。事实上,他们已开始为qml本身的直接桌面小部件提供一些支持。请参阅here。
随着现代桌面的外观和感觉迅速变化,趋势似乎走向未来,电话和桌面用户界面在某些时候合并!
由于桌面方面几乎没有任何创新,他们似乎正朝着手机世界的新趋势迈进。 那么,看看在Windows Metro类UI中发生了什么?
为了以防万一,您可以阅读here如何制作像UI这样的Metro是qml!。
随着Qt5的推出,事情变得更好了!阅读this,了解它如何弥合桌面和手机用户界面之间的差距。
P.S。观点可能有点偏颇,对Qt粉丝和Java仇恨都太过分了。 : - )