我最近一直在使用php-gtk,过去我已经尝试使用Java来制作GUI“hello world”应用程序。
然而,这些类型的应用程序都有一些笨重(几乎幼稚)的外观和感觉。我不能否认它们可以方便地制作内部使用的应用程序(我完全尊重这些项目中的社区工作量)。但我不一定会自豪地将它作为商业应用程序出售,价格为450英镑或1000英镑。
如果我想创建一个具有外观和感觉的应用程序,例如Firefox for Windows或Adobe xyz,我应该使用哪种GUI /语言?
'专业的光泽'或智能的外观和感觉是100%低于设计师还是情况是,无论设计师有多好,选择正确的GUI框架对于获得这种外观至关重要?
答案 0 :(得分:7)
为一个软件提供完美的用户体验有几个方面。
答案 1 :(得分:4)
这与伊戈尔的回答有点重叠,但这是我的看法:
原生控制外观 - 今天的UI控件外观相当复杂。我们本能地从他们那里得到许多视觉线索,即使它是一个带有一些框架的白色矩形,但是它的阴影看起来很奇怪。上下文菜单通常不仅在今天打开,它从某个方向滑入,或淡入。
本机控制行为 - 比UI更复杂,行为有很多细节:根据点击位置的不同上下文菜单,选择或拖动项目时的不同“热门”区域,键盘快捷键,等。
注重细节 - 在任何平台上都可以发现很多一致的UI行为。只是箭头键在树中的工作方式控制WRT选择,打开和关闭节点。
看看Windows:大多数非原生工具包都会导致错误的基本键盘导航 - 箭头键,Home,End,PgUp和PgDown,使用Ctrl修改的行为,使用Shift扩展选择最多可以提供32种行为。复制&粘贴传统上使用Ctrl + C / Ctrl + X / Ctrl + V和Shift + INS,Shift + DEL和缺失。鼠标双击经常选择一个单词,鼠标三次单击有时一个句子,行或段落。
响应时间和肌肉记忆 - 基本上有两种UI操作模式:
act-look loop ,等待响应,然后再决定下一步,
从肌肉记忆中回放,速度更快,需要更少的心理处理资源。
然而,有两个要求:响应必须是统一的和“即时的”,并且必须立即正确注册下一个动作(至少在10毫秒内)
通常情况下,使用非本机工具包时,由于响应滞后于一两个动作(思维锁定差异),以及需要50毫秒或更长时间来显示菜单的工具包,这会变得很难点击未按预期注册。
优秀的用户界面需要很长时间才能正确 - 一个好的控制库可以解决大部分的每个控制问题,但有一些最终的10%占用90%的时间,并且你有控制权互动。你必须尝试不同的方法,你必须期望用户接受FPS训练的反应,你必须尝试各种工作流程。
跨平台工具包无法完全正确 - 它们陷入困境之中:他们可以选择独立于平台的内部一致性,或者与平台保持一致目前正在运行。为了使它正确,后者通常需要调用代码中依赖于平台的代码,这是您试图避免的实际情况。
答案 2 :(得分:3)
始终尝试使用桌面环境使用的GUI框架。 .NET的库可能是创建Windows应用程序的最佳选择。 GTK +在GNOME上总是最好的,而Qt在KDE上运行良好 - 即使这三者在彼此的系统上运行,它们的视觉吸引力也因缺乏可视化集成而降低。
答案 3 :(得分:3)
所使用的GUI API /语言与UI设计完全无关,尽管有些API使其更容易实现或紧密实现。
良好的用户界面是关于:
要实现这一目标,您需要查看许多“好”的应用程序并剖析使它们变得更好的内容。找一个好的艺术家/平面设计师为你画出好的图标等。花大量的时间考虑用户的工作流程。
确保将业务逻辑与UI分开 - 这将允许您轻松地重新设置应用程序以改善UI。通常,程序所需的数据与用户使用应用程序的方式无关 - 不要只想在可编辑字段中公开x,y,z变量! UI是隐藏实现并使其可用的层!
答案 4 :(得分:1)
我并不关心Java应用程序GUI使用常用工具包的方式。如果您喜欢Firefox的外观,您可以查看大多数Mozilla应用程序共享的XUL和GUI框架。 Komodo Editor / IDE使用相同的工具(以及其他几个应用程序)。 GTK是非常强大的,我真的怀疑它是什么阻止你的应用程序具有专业的光泽。继续探索它的功能,并重新思考显示组件的最佳方式,我相信你会偶然发现一种感觉更好的安排。
另一方面,并非所有关于工具包的内容。良好的界面设计是一门艺术,像Firefox这样的界面已经通过无穷无尽的反馈发展而来。最好的办法是与用户交谈,找出使他们使用您的应用程序更舒适的内容。我发现软件在功能上也很好看。
我建议你花很多时间在软件上,这些软件你觉得很有用。记录事情的完成方式,并寻找界面元素之间的共性。大多数软件都遵循一套非常常见的原则,这些原则使得使用软件变得更容易,而且您越是探索您觉得有吸引力的软件,模式就会越早出现。
祝你好运!