学习创建漂亮的/下一代 GUI

2024-02-06

I really想要创建一个外观令人惊叹的 GUI 桌面应用程序,例如:

  • Mac OS X 界面
  • Windows 上的 Picasa 桌面客户端
  • iPhone 应用程序
  • 办公室2007

我主要使用 Qt/Swing/WinForm 进行 GUI 编程

我厌倦了创建如此朴素的 GUI,哈哈。

所以我正在考虑深入研究以下内容:

  • jQuery
  • WPF/C#
  • iPhone SDK
  • 银光
  • Adobe Air/Flex

只是为了获得一些关于如何创建非常酷的 UI 的想法。

这听起来是一个不错的清单吗?这里有开发人员可以分享他们使用什么平台来创建非常酷的桌面应用程序吗?

顺便说一句,我真的很想知道苹果/微软的开发人员使用什么来开发他们自己的看起来很酷的软件。

EDIT很多回复都谈到可用性比“看起来很酷”的重要性。

我完全同意可用性和简单性是用户界面设计最重要的方面。我从事 GUI 开发已经有一段时间了(> 3 年),所以我明白了。

但使用看起来很酷的 UI 也可以改善用户体验 + 它可以使big你的软件是否畅销的区别。

我的意思是,否则为什么微软/苹果每次有新版本时都会尝试让他们的操作系统用户界面看起来“更酷”?为什么会有像 pragprog.com 或 versionsapp.com 这样的网站。让他们的网站看起来像那样?基本上你一石二鸟:令人惊叹的用户界面+超级可用性(因为它看起来简单直观)。

That这就是我正在努力的目标。据我所知,我无法使用 Qt/Winform 实现这一点。我读过的大多数书籍只是向您展示如何制作外观普通(阅读:1990 年代)的 UI。我想学习如何创建看起来很酷的用户界面。这些天我唯一看到看起来很酷的用户界面的地方就是我上面列出的技术。我不迷恋任何技术;但我只是想知道其他技术是如何完成的,看看我是否可以将它们应用到我正在使用的技术中,或者看看我是否可以在我的工作中使用这些技术。

举个例子:如果我要在这之间做出选择UI http://www.timepanic.com/assets/images/TipENScreenshot01.png和这个UI http://klok.mcgraphix.com/klok/screen1.jpg,如果仅根据外观,我可能会选择后者。

从功能上来说,它们只是相同的 UI;它们都可以让你记录你的时间。它们都包含按钮和文本框等。但事实上它们看起来不同的,还可以根据吸引力来区分它们。

所以总而言之,我认为“锦上添花”非常重要。我想说,当你确定自己拥有一个完全直观、可用的用户界面后,这就是你所追求的目标。


我认为许多人在设计界面时表现不佳的主要原因是他们将它们视为平面设计。它不是。创建良好的用户界面的核心有点像创建良好的 API – 界面必须在概念上一致、不易误用、易于执行常见任务。

因为“厌倦了简单的 GUI”而想要设计一些很酷的东西是灾难的完美秘诀。如果不为别的,那么因为一致性是良好 UI 的关键部分。如果每个应用程序都想远离人群,那么整个应用程序将变得一团糟,无法使用。

不幸的是,Mac OS X 看起来那么好,因为人们开始认为可以通过动画或在其顶部撒上一些图形来创建一个好的界面。图形部分,设计的“酷”只是锦上添花。如果您真的想设计良好的界面,请忠于环境,尊重当地的人机界面准则。也许读Apple 的人机界面指南 http://developer.apple.com/mac/library/DOCUMENTATION/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html了解问题出在哪里以及可以采取哪些措施来解决这些问题。

我知道这听起来比 Photoshop 中的填充渐变无聊得多,但如果你真的想创建一流的界面,这是唯一正确的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习创建漂亮的/下一代 GUI 的相关文章

  • 禁用 com.android.systemui 是否安全?

    我发现 Android 最近的应用程序对话框可以通过禁用来禁用 包裹com android systemui 我想在信息亭模式下运行我的 已取得 root 权限的 设备 因此长按时不要显示最近的应用程序对话框至关重要 现在 到底是什么com
  • 如何在 PySimpleGUIQt 中实现复选框功能?

    我正在尝试用 Python 创建一个简单的 GUI 程序 我将在创建新项目时使用它 我想要一个用于项目类型 python web 等 的复选框功能 然后是项目名称的输入框 目录名称是什么 import os import PySimpleG
  • Svelte 路线给我 404

    我在 Svelte 中为我的应用程序创建了一个简单的路由器 如果我从导航栏访问链接 它就可以工作 如果我重新加载页面 它会给我 404 为什么
  • Ruby:基于控制台的菜单

    我有一个名称和 URL 数组 并希望以向上 向下滚动菜单的形式向用户呈现名称列表 基本上是什么dialog允许在外壳内 我调查过ncurses ruby rdialog and HighLine但它们似乎要么作为一个项目被放弃 要么甚至从它
  • 如何在 Java Gnome/GTK 程序中使用 Glade UI(.glade 文件)?

    我在 Internet 上进行了一项研究 寻找教程 文档来解释如何在 Java Gnome 项目中使用 Glade 中设计的 UI 但没有成功 我已经知道如何使用 Java Gnome GTK 从代码创建 UI 不管怎样 我想使用我在 Ja
  • Flutter 容器的 onTap 方法

    一直在开发一个 flutter 应用程序并根据一些 Firebase 数据动态构建一些容器 我想知道是否有办法获得容器的 onTap 方法 或任何不是按钮的小部件 这是一个代码示例 child new Container INSERT ON
  • 如何将事件侦听器与“请求”事件结合起来?

    我为终端编写了一个简单的小迷宫游戏 它反复要求用户做某事 例如 您想朝哪个方向走 N E S W 我有一个navigate 方法在循环中运行 触发这些问题 存储答案并根据答案执行某些操作 public enum Dir N E S W pu
  • 在 Qt 中旋转图像

    在我的应用程序中 我想旋转图像 我已将图像设置为QLabel 我已经设置了一个QPushButton 单击该按钮时我想向四个方向旋转图像 右 gt 底部 gt 左 gt 顶部 有什么帮助吗 假设您有一个指向 QLabel 的指针 您可以执行
  • Blackberry - 自动滚动垂直字段管理器

    如何以编程方式沿特定方向滚动屏幕而不改变焦点 例如 当我们向下滚动到 FaceBook 应用程序中的 Feed 时 它会自动滚动屏幕以适合屏幕中央的所有文本 这可以在 Blackberry Java 开发中完成吗 谢谢 阿夫扎尔 如果出现以
  • 填充 UIScrollView 的垂直空间

    我正在研究一个具有UIScrollView 我想要做的是将标签固定在可滚动区域的顶部 并将按钮固定在底部 两者之间的空间最小 这个想法是 如果标签的高度增加 按钮将被向下推 以便用户必须向下滚动才能找到它 但是 如果标签很短 则标签和按钮之
  • TextView 中缩进项目符号列表

    我有一个 TextView 我用 strings xml 中的字符串资源中的文本填充它 字符串资源包含 元素 用于在 TextView 内创建项目符号列表 我的问题是我想控制项目符号列表中跨越多行的行的缩进 默认情况下 文本不会缩进超过项目
  • 我怎样才能有一个像这样的动画SliverAppBar?

    我希望这些动画之间能够平滑 我尝试使用AnimatedSize AnimatedOpacity and AnimatedPositioned但几乎没有错误 我不知道如何使用这些SliverAppBar 在其他例子中我看到人们使用Layout
  • 切换“确定-取消”和“取消-确定”以强制用户交互?

    这是受到这个问题的启发确定 取消还是取消 确定 https stackoverflow com questions 50335 ok cancel or cancel ok 我记得在某处读到过有关在某些情况下切换 确定 取消 取消 确定 的
  • 给定背景颜色,如何获得使其在该背景颜色上可读的前景色?

    给定背景颜色 如何获得使其在该背景颜色上可读的前景色 我的意思是在程序中自动计算前景色 或者简化问题 如果前景色是从白色 黑色中选择的 那么在程序中如何进行选择呢 这是我用 Java 和 Javascript 做的一个 它是松散地基于thi
  • JPanel 上的圆形边框

    我这里得到的是一个带有圆形边框的 JPanel 其设置如下 panel setBorder new LineBorder PanelColor 5 true 问题是 在每个角上都有 2 条从外角到内角的对角不透明线 即边框的长度 边界后面的
  • 在 Volley 中更新 UI 最有效的方法是什么

    最近我在 android 中使用 Volley 库 它工作得很好 但我想知道更新 UI 的最有效方法 我有一个包含所有 Volley 方法的 Utils 类 现在我传递了所有视图将作为参数更新 但我读到我可以在活动中实现侦听器 然后将它们作
  • 使 Java JScrollpane 仅垂直滚动

    我希望我的整个 JFrame 能够垂直滚动 我添加了以下代码 但它只创建了一个水平滚动条 frame setContentPane new JScrollPane new GradeQuickResource 我想做相反的事情 我只想要一个
  • PySide / Python GUI 冻结

    我目前正在为 rvplayer 编写一个 GUI 它将使艺术家能够自动渲染带有板岩和老化信息的样片 GUI 使用 PySide 编写并使用 Python 2 7 编写脚本 我的问题是 在调用我的流程并更新我的QProgressBar使用 s
  • 向 Thunderbird 添加多个附件(从命令行)

    我尝试通过命令行创建带有多个附件的新消息 但这不起作用 thunderbird compose attachment etc mtab attachment etc fstab 仅附加第一个文件 第二个失踪了 上面的命令行有什么问题 PS
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看

随机推荐

  • 如何在任何给定时间检查池中活动 sqlalchemy 连接的数量?

    我遇到过这样的情况 由于高流量负载 sqlalchemy 会不时耗尽活动连接 我想运行一些测试来验证和优化每个用例的池参数 但是 我找不到轮询活动连接计数的直接方法 当前设置如下 args mapping pool size 10 max
  • py2app 在构建过程中获取包的 .git 子目录

    我们在我们的工厂广泛使用 py2app 来生成自包含的 app 包 以便轻松进行内部部署 而不会出现依赖性问题 我最近注意到的一件事 但不知道它是如何开始的 是在构建 app 时 py2app 开始包含我们主库的 git 目录 例如 com
  • 加速(缓慢的)巨大的 WordPress 数据库

    我正在测试一个新项目 其中涉及使用 WordPress 安装 该安装有超过 150 万个帖子 通常帖子内容 标题只有一两行 所以很短 我已经有了强烈推荐的 W3 cache 插件 它很有帮助 但是当你第一次登陆一个页面时 需要 40 60
  • 检查菜谱中是否包含某种成分 - MYSQL

    嘿大家 我在有效运行查询 PHP 组合时遇到了一些麻烦 我似乎只是在 php ini 的内部循环中循环了太多结果集 我确信有一种更有效的方法可以做到这一点 非常感谢任何帮助 我有一张桌子 里面有 3500 个食谱 recipe rid re
  • 在这种情况下,为什么我必须显式解开字符串?

    我有一根绳子var oneString String 然后在一个方法中 当我想将一个字符串连接到oneString我必须这样做 oneString anyString 如果我不添加 我收到一个错误 String is not identic
  • xcode 错误:所选的运行目标对此操作无效

    我的应用程序在 4 3 模拟器和设备中运行良好 现在我想在 4 0 模拟器中测试它 并且我还有 4 2 1 设备 因此 我将 ios 部署目标设置为 4 0 也尝试过 4 2 但 xcode 给了我该错误 所选的运行目标对此操作无效 然后我
  • java.io.IOException:grpc 失败

    当我使用 call getFromLocationName 时 我收到一个 IOException 描述为 grpc failed 运行的代码 Override public void onMapReady GoogleMap google
  • 如何构造HttpPostedFileBase?

    我必须为此方法编写一个单元测试 但我无法构造 HttpPostedFileBase 当我从浏览器运行该方法时 它运行良好 但我确实需要一个自动单元测试 所以我的问题是 如何构造 HttpPosterFileBase 以便将文件传递给 Htt
  • C# 6 Elvis 运算符(空传播)是否短路

    为什么这段 C 代码会抛出 null 异常 bool boolResult SomeClass NullableProperty ItsOkProperty false 一旦 NullableProperty 求值为 null elvis
  • 使用 .net Core 3.1 的 Kestrel ssl JSON 配置中的证书问题

    我已经看到这个问题的答案 但它似乎不适用于 net core 3 1 此代码查找证书 using var store new X509Store Root StoreLocation LocalMachine store Open Open
  • 如何将 PHP 数组格式化为字符串

    我有这个 php 数组 items array Item 1 gt Value 1 Item 2 gt Value 2 Item 3 gt Value 3 我想知道是否有一个我从未听说过的优雅的 PHP 函数可以执行与此相同的操作 outp
  • 使用 Visual Studio 2019 部署到 Hololens 2

    我正在尝试部署到我的 Hololens 2 并尝试通过 wifi 连接到它 我按照此处的说明进行操作 https learn microsoft com en us windows mixed reality mrlearning base
  • 将 y 轴上的数字转换为字符串,其中 K 表示千 d3.js

    我正在使用 d3 js 图表来绘制 y 轴和 x 轴 它工作正常 但是 y 轴上的值可以说范围是 0 到 10000 我希望如果数字大于千 它将带有 K 如果数字是 1000 它将显示 1K 如果数字是 15000 它将在 y 轴刻度上显示
  • Android 开发 Windows Defender 需要排除哪些文件夹?

    我在Windows Defender中排除了以下文件夹 但 反恶意软件服务可执行文件 仍然使用大量CPU C Program Files Android Android Studio C Users ME android C Users M
  • 更改 LocalDb 的默认位置

    我首先使用 EF5 代码进行编程 并希望使用 LocalDb 如何更改 LocalDb 数据库文件的默认位置 默认位置是 USERPROFILE 目录 根据http blogs msdn com b sqlexpress archive 2
  • 如何为独立的 Sinatra 应用程序启用 SSL?

    我想在 Sinatra 中编写一个快速的服务器应用程序 它必须是独立的 即不使用 apache nginx passenger 但也必须支持 SSL 有没有一种简单的方法来启用 Sinatra 的 SSL 支持 例如使用 WEBRick 要
  • 如何获取共享内存中的共享对象

    我们的应用程序依赖于外部第三方提供的配置 包括自定义驱动 决策功能 可作为 so 文件加载 独立地 它使用一块共享内存与外部 CGI 模块协作 其中几乎所有易失性状态都被保留 以便外部模块可以读取它并在适用的情况下修改它 问题是 CGI 模
  • 如何在 Android 手机中设置代理?

    我真的很想知道如何在 Android 手机中设置代理服务器 例如 tattoo 为了获得某些专用网络的访问权限 任何建议将不胜感激 thanks 终于我得到了我想要的 这是结果 Android Web 浏览器没有用于代理设置的 UI 但 A
  • MySQL:比较两个表之间的差异

    Same as oracle diff 如何比较两个表 https stackoverflow com questions 688537 除了在 mysql 中 假设我有两个表 t1 和 t2 它们的布局相同 但可能包含不同的数据 区分这两
  • 学习创建漂亮的/下一代 GUI

    I really想要创建一个外观令人惊叹的 GUI 桌面应用程序 例如 Mac OS X 界面 Windows 上的 Picasa 桌面客户端 iPhone 应用程序 办公室2007 我主要使用 Qt Swing WinForm 进行 GU