我们的桌面应用程序需要在Mac,Windows和Linux上运行。这就是我们选择Qt的原因。之前,我们为这3个平台提供了三个独立的代码库。
在旧的实现中,我们使用Close,Minimize,Maximize按钮绘制了我们自己的“窗口标题”。在所有三个平台中看起来都一样。
这一次,我不太确定。我想让Qt使用每个平台的默认标题和标题按钮,矩形的“X”,“_”窗口按钮,mac左侧的圆形按钮,以及Linux / Ubuntu等的任何内容。 / p>
这是明智的决定吗?推动我的一件事是,我必须为我正在编写的窗口类编写调整大小代码,拖动代码,按钮工作以及编写自己的窗口标题所带来的所有其他内容。
我注意到如果我使用它,“Qt :: FramelessWindowHint”来删除标题,我也会自动丢失我的调整大小的格斗。有办法吗?另外,你将如何实现自己的窗口拖动代码? (提供你知道你想要用作“可拖动标题”的区域。似乎我需要抓住该区域的按钮,进入拖动模式,跟踪鼠标移动并根据增量移动窗口。类似于调整大小。我以前在其他平台上做过这个,但是我想问一下Qt是否有一个允许我“开箱即用”的机制?
答案 0 :(得分:11)
我想让QT使用每个平台的默认标题和标题按钮
请这样做。作为Mac用户,很少有东西比“通用”接口更令人困惑,这些接口本来应该看起来一样。 Windows风格的界面令人困惑。 Mac风格界面是我习惯的和我想要的。
如果你必须编写(并维护和支持)更少的代码,那就更好了。
尽可能选择“原生”。写尽可能少的代码。
答案 1 :(得分:1)
我的建议是让每个应用看起来和感觉它运行的平台原生。原因很简单:用户选择特定平台是有原因的。他或她喜欢它的外观和作品。
当然有例外。对于不使用Windows,对话框和大量控件的全屏应用程序,自己做饭并使其在所有支持的平台上看起来都一样可以,甚至是可取的。但对于普通的窗口应用程序,最好坚持本机UI准则。
答案 2 :(得分:0)
我认为应用程序应该遵循操作系统的UI设计,这样工具的外观和其他操作系统类似。通常,当在所有三个主要平台中使用完全相同的UI创建应用程序时,它与操作系统中运行的其他应用程序的感觉不同。
例如Apple对自己的UI设计非常严格,因此mac用户希望工具以特定的方式工作。
这也适用于快捷键,这可能是最难的部分,因为OS X,Linux和Windows在快捷键中有自己的模式,找到合适的组合并不总是那么容易。