2011-02-03 51 views
5

我们的桌面应用程序需要在Mac,Windows和Linux上运行。这就是我们选择Qt的原因。之前,我们有三个独立的代码库用于这3个平台。Qt:哲学UI设计困境

在旧的实现中,我们用Close,Minimize,Maximize按钮绘制了我们自己的“窗口标题”。它在所有三个平台上看起来都一样。

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

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

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

回答

11

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

请做到这一点。作为一个Mac用户,几件事情是比应该到处看看相同的“通用”界面更加混乱。在Windows风格界面confusin G。 Mac Style界面是我习惯的和我想要的。

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

只要尽可能地与“本地”。写尽可能少的代码。

+0

听到了!任何给定窗口系统的用户都有他们习惯的外观和感觉(以及位置)。任何与此相背离的情况都会使他们不得不更加努力地弄清楚如何执行他们想要的操作,从而使应用程序感觉难以使用。正如这个答案所提到的:更少的编码和支持总是一件好事。 – 2011-02-03 20:20:40

0

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

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

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

1

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

这当然是例外。对于不使用窗口,对话框和许多控件的全屏应用程序,在所有支持的平台上进行烹饪并使其看起来完全相同即可,甚至是可取的。但对于普通的窗口应用程序,更好地坚持原生UI准则。