2

在从事过网页设计和 Android 工作之后,我终于开始了桌面软件的工作,直到我真正开始桌面版 UI 设计时,我的开发周期出现了重大延迟。到目前为止的经历是痛苦的。我决定使用 Java 来编写程序,因为这样我就可以使用跨平台 API 来实现套接字和无线接口(我的程序严重依赖这些 API,并且可以成功运行)。

网页和安卓用户界面设计:

HTML/CSS/Javascript ; XML/Android API --> 提供高度的灵活性、定制化、快速的 UI 开发周期。

Java桌面UI设计

AWT/Swing/Swing FX -->

  1. 从这里这里的问题可以看出,几乎不可能进行定制。当可以定制时,实施它会大大增加开发时间,如此处所示。它还增加了代码的复杂性,并且在大多数情况下,该解决方案是本机的,并且不适用于跨平台(至少 Linux、Windows、Mac)。原生的默认外观确实不是大多数 UI 设计师想要的。

  2. 拖放选项很好,例如缩短开发时间。窗口生成器。但是缺少像添加 ImageView 这样的选项。并且,如果需要第 2 点中提到的自定义,则必须对自动生成的代码进行大量修改,完全否定拖放的使用。

任何人都可以向我推荐一个非常好的或接近好的 UI 工具,或者说 UI 引擎(如果存在的话),它具有以下功能:

    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.

我认为最好的方法或工具:

  1. Qt 框架。非常适合 UI,但如果它具有 Java 和其他语言的包装器,那就太好了。它不会减少开发时间,并且需要手动编码,但可以使界面看起来非常好并且
    可用。

  2. WxPython。另一个好工具,如果它有其他语言的包装器会很酷。

  3. 一些工具,可让您使用类似 HTML/CSS/XML 的语法和易用性来设计桌面 UI。

  4. 不要再考虑 UI 工具了

    一种。只需停止抱怨并使用默认值和现有工具以及本机外观即可。

    湾。手动编写所有代码,并为每个平台单独定制。

    C。使用 Java 和编程 UI 绘制图形画布,就像在游戏中编写场景一样。

如果您不这么认为,或者是否有更好、更简单的选择,请提出建议。

谢谢。

4

2 回答 2

6

在我看来, “几乎不可能定制”是短视的,您可以在这里查看有关外观和感觉的信息,如果您喜欢冒险,您可以创建自己的。人们在定制 Swing 时遇到的许多问题更多地归结为缺乏理解,然后是 API 的不灵活,事实上,我发现 Swing 是最灵活和可定制的工具包之一 - 恕我直言。

您也可以在这里查看如何制作自己的组件

您必须意识到,随着您越来越接近“快速工具”,您开始降低灵活性和可定制性,因为这些工具开始将您锁定。

我没有使用 WindowBuilder 的经验,但 NetBeans 表单设计器允许您包含项目类路径中的任何组件,包括您构建或下载的任何组件。

我同意 Swing 经常受到的批评之一是它需要多长时间才能启动和运行。这归结为为灵活性和可定制性而设计的 API。最终开发人员可以围绕最适合其需求的 API 构建库。

大多数人会告诉您避免使用屏幕构建器来支持手动编码。就个人而言,我喜欢屏幕构建器,但我坚持让我的初级开发人员对布局管理器的工作方式有很好的理解,并构建复合布局等设计技术。

我认为很多人遇到的问题之一是忘记构建应用程序。虽然我喜欢一个好看的应用程序,但我仍然更喜欢一个真正做到了它的设计目的并且做得很好的应用程序,而不是看起来很漂亮。

恕我直言

于 2013-01-19T21:20:54.963 回答
2

我将用 Qt 来讨论

1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.

Qt 提供了极好的开发环境:

  1. Qt Creator 跨平台 IDE
  2. Qt 快速设计器
  3. Qt 设计器
  4. 国际化工具
  5. HTML 帮助系统
  6. Visual Studio 插件和 Eclipse 集成
  7. 跨平台构建工具

您可以在给定的链接中阅读有关 QtDesigner 的信息。它为您提供了一个简单的所见即所得 (WYSIWYG) 类型的界面并为您生成自动代码。如果您希望您的 UI 是多语言的,其他模块(如国际化)也很适合使用。

2. Everything is cross-platform, including customization solutions.

Qt 适用于以下平台:

  1. Windows – 适用于 Microsoft Windows XP、Vista、7 的 Qt。
  2. Windows CE, Mobile – 用于 Windows CE 和 Windows Mobile 的 Qt。
  3. Symbian – 用于 Symbian 平台的 Qt。
  4. OS X – 苹果 OS X 的 Qt;支持 Cocoa 上的应用程序。
  5. X11——用于 X Window 系统的 Qt(GNU/Linux、FreeBSD、HP-UX、Solaris、AIX 等)。
  6. 嵌入式 Linux – 用于嵌入式平台的 Qt:个人数字助理、智能手机。Maemo, MeeGo – Qt for Maemo,与 Moblin 合并为 MeeGo
  7. Wayland – 用于 Wayland 显示服务器的 Qt。Qt 应用程序可以在加载时使用 -platform 命令行选项在 X 和 Wayland 等图形后端之间切换

外部端口

自从诺基亚在 Gitorious 上向社区开放 Qt 源代码以来,各种端口已经出现。这里是其中的一些:

  1. Qt for OpenSolaris – Qt for OpenSolaris
  2. 俳句的 Qt – 俳句的 Qt
  3. Qt for OS/2 – Qt for OS/2 eCS 平台
  4. Qt-iPhone – Qt for iPhone 的实验性开发
  5. Qt for webOS——Palm Pre 上 Qt for webOS 的实验性开发
  6. Qt for Amazon Kindle DX – Qt for Amazon Kindle DX 的实验性开发
  7. Necessitas – Qt for Android
  8. 黑莓 Qt – 黑莓 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.

你不会相信这里的清单。它们涵盖了几乎所有内容,包括 Ada、Pascal、Perl、PHP、Ruby、Python 和 Java。


假设您计划使用“本机”小部件的外观和感觉制作桌面应用程序,我已经给出了上述信息。我想添加更多内容。

  1. 如果您有足够的灵活性来制作没有真正具有“按钮”等的 UI,并且更像是“智能手机 UI”,那么除了使用 Qt-Quick 之外别无他法。

  2. 快速、简单、强大、灵活。事实上,他们已经开始在 qml 本身中为直接桌面小部件提供一些支持。见这里

  3. 随着现代桌面快速变化的外观和感觉,未来趋势似乎是电话和桌面用户界面在某个时候合并!

由于桌面端几乎没有任何创新,他们似乎正朝着手机世界的任何新事物迈进。那么,看看 Windows Metro 类型的 UI 中发生了什么?

以防万一,您可以在此处阅读如何使 Metro 像 UI 一样是 qml!。

随着 Qt5 的到来,事情变得更好了!阅读本文以了解它如何弥合桌面和手机 UI 之间的差距。

PS Views 可能有点偏颇,我太喜欢 Qt 和讨厌 Java,两者都是。:-)

于 2013-01-20T11:32:49.360 回答