为什么OSX上的Qt似乎默认为过大的字体?即使您手动选择相同的字体大小,字体也会显得略大一些。 OSX上的Qt是否对OSX使用了不同的字体渲染?如果你将Qt用于Cocoa,这会改善吗?
此外,是否有qtconfig工具或等效工具全局设置所有Qt应用程序的字体设置?
谢谢!
答案 0 :(得分:2)
Max Howell是正确的。在本机OS X应用程序中,您可以选择为窗口和窗口小部件设置小尺寸和小尺寸。然后,这些将选择较小的字体,并将调整一些图形元素的大小。
许多OS X设计人员都在使用它,因此不遵循此约定的应用程序很可能在OS X上看起来过大。
正如已经指出的那样,Qt提供的widget attributes可以改变这一点:Qt::WA_MacNormalSize
,Qt::WA_MacSmallSize
,Qt::WA_MacMiniSize
,Qt::WA_MacVariableSize
- 但不幸的是,它似乎许多人不知道他们,如果他们这样做,实现它们是一个黑客,因为它将要求代码有相当多的#ifdef
s(除非他们使用辅助函数这样可以减少工作量。)
特别糟糕的是,Qt不会在他们自己的 Qt Creator 或 Qt Designer 中使用这些属性,尤其是在诸如大行高的属性表之类的小部件中使它在较小的显示器上几乎无用,因为你需要永远滚动才能找到你一直在寻找的属性。
答案 1 :(得分:1)
为什么OSX上的Qt似乎是默认的 过大的字体?
在InterfaceBuilder和Qt Designer中默认使用相同的字体。
即使您选择相同的字体 手动大小字体出现 略大一点。
原来这只是我的想象,它们完全一样。
OSX上的Qt是否使用不同的字体 渲染到OSX?
不,它使用原生渲染。
如果您使用Qt,这会改善吗? 可可?
字体没有,但其他事情确实发生了变化。 Carbon和Cocoa之间的字体呈现看似相同。
另外,是否有qtconfig工具 或等效于全局设置字体 所有Qt应用程序的设置?
OSX没有qtconfig
工具或任何全局设置字体设置的方法。
上述问题的根源似乎是,与Windows或Linux相比,OSX应用程序倾向于使用稍低点的字体。因此,Qt OSX应用程序中使用的字体大小应进行手动调整,以便更好地匹配平台上其他位置使用的字体。
答案 2 :(得分:0)
如其他答案中所述,您可以设置widget attributes:Qt::WA_MacNormalSize
,Qt::WA_MacSmallSize
,Qt::WA_MacMiniSize
,Qt::WA_MacVariableSize
。
我发现为您的整个应用程序执行此操作的最简单方法是使用QProxyStyle并在QProxyStyle::polish
方法中根据需要设置属性。
我通常会确保不会更改QMenu小部件上的标志,因为它会破坏键盘快捷键的显示。
因此,例如,为了使所有小部件变小,除了菜单和我选择保持大的那些,我这样做:
void QMveStyle::polish ( QWidget * w )
{
#ifdef __APPLE__
QMenu* mn = dynamic_cast<QMenu*>(w);
if(!mn && !w->testAttribute(Qt::WA_MacNormalSize))
w->setAttribute(Qt::WA_MacSmallSize);
#endif
}