Qt:哲学的 UI 设计困境

Posted

技术标签:

【中文标题】Qt:哲学的 UI 设计困境【英文标题】:Qt: Philosophical UI Design Dilemma 【发布时间】:2011-02-03 20:06:15 【问题描述】:

我们的桌面应用程序需要在 Mac、Windows 和 Linux 上运行。这就是我们选择 Qt 的原因。之前,我们为这 3 个平台提供了三个独立的代码库。

在旧实现中,我们使用关闭、最小化、最大化按钮绘制了自己的“窗口标题”。在所有三个平台上看起来都一样。

这一次,我不太确定。我想让 Qt 使用每个平台的默认标题和标题按钮,矩形“X”,“_”窗口按钮,mac 左侧的圆形按钮,以及 Linux/Ubuntu 等的任何内容。

这是一个明智的决定吗?推动我到那里的一件事是我必须为我正在编写的窗口类编写调整大小代码、拖动代码、按钮工作以及编写自己的窗口标题所附带的所有其他内容。

我注意到,如果我使用“Qt::FramelessWindowHint”来删除标题,我也会自动失去调整大小的抓钩。有办法解决吗?另外,您将如何实现自己的窗口拖动代码? (假设您知道要用作“可拖动标题”的区域。似乎我需要在该区域上按下按钮,进入拖动模式,跟踪鼠标移动并根据增量移动窗口。调整大小类似。我以前在其他平台上做过,但我想问一下 Qt 是否有一种机制可以让我“开箱即用”地做到这一点?

【问题讨论】:

【参考方案1】:

我想过让 QT 使用每个平台的默认标题和标题按钮

请这样做。作为 Mac 用户,没有什么比“通用”界面更令人困惑的了,这些界面应该在任何地方看起来都一样。 Windows 风格的界面令人困惑。 Mac Style 的界面是我习惯的,也是我想要的。

如果您必须编写(以及维护和支持)更少的代码,那就更好了。

尽可能使用“原生”。尽可能少写代码。

【讨论】:

听听!任何给定窗口系统的用户都有他们习惯的外观和感觉(和位置)。任何与此的偏差都会使他们不得不更加努力地弄清楚如何执行他们想要的操作,从而使应用程序感觉更难使用。正如这个答案所提到的:更少的编码和支持总是一件好事。 感谢您和其他评论员。这对我来说很有意义,这就是我要向我的老板们提出的建议。我希望我们已经设计了带有特殊按钮的“自定义标题”的图形艺术家不会尖叫。【参考方案2】:

我的建议是让每个应用程序在其运行的平台上看起来和感觉都是原生的。原因很简单:用户选择特定平台是有原因的。他或她喜欢它的外观和工作方式。

当然也有例外。对于不使用窗口、对话框和很多控件的游戏等全屏应用程序,自己制作并使其在所有支持的平台上看起来都一样是可以的,甚至是可取的。但对于普通的窗口应用程序,最好坚持原生 UI 准则。

【讨论】:

【参考方案3】:

我认为应用程序应该遵循操作系统的 UI 设计,这样工具的外观和感觉类似于其他操作系统。通常,当在所有三个主要平台上使用完全相同的 UI 创建应用程序时,它会与在操作系统中运行的其他应用程序感觉不一样。

例如,Apple 对自己的 UI 设计非常严格,因此 mac 用户希望工具以特定方式工作。

这也适用于快捷键,这可能是最难的部分,因为 OS X、Linux 和 Windows 的快捷键有自己的模式,找到合适的组合并不总是那么容易。

【讨论】:

以上是关于Qt:哲学的 UI 设计困境的主要内容,如果未能解决你的问题,请参考以下文章

基于文字的人工智能哲学——现状困境思路与发展

奇舞周刊第 256 期:超大型 JavaScript 应用的设计哲学

ReactReact全家桶React哲学

ReactReact全家桶之React哲学

第1255期超大型 JavaScript 应用的设计哲学

社区说|Kotlin Flow 的原理与设计哲学