代码之家  ›  专栏  ›  技术社区  ›  Mike McQuaid

OSX上的超大qt字体

  •  3
  • Mike McQuaid  · 技术社区  · 15 年前

    为什么OSX上的qt似乎默认为过大字体?即使手动选择相同的字体大小,字体也会略大一些。OSX上的qt是否使用不同的字体渲染到OSX?如果你用qt来做可可,这会改善吗?

    此外,是否有qtconfig工具或等效工具全局设置所有qt应用程序的字体设置?

    谢谢!

    3 回复  |  直到 12 年前
        1
  •  2
  •   Debilski    14 年前

    马克斯·豪厄尔是对的。在本机OSX应用程序中,您可以选择为窗口和小部件设置小尺寸和小尺寸。然后,它们将选择较小的字体,并调整一些图形元素的大小。

    许多OS X设计师都利用了这一点,因此不遵循此约定的应用程序在OS X上很可能看起来过大。

    如前所述,qt确实提供 widget attributes 可以改变这一点: Qt::WA_MacNormalSize , Qt::WA_MacSmallSize , Qt::WA_MacMiniSize , Qt::WA_MacVariableSize 但是不幸的是,许多人似乎不了解他们,如果他们知道的话,实现他们有点像黑客,因为这需要代码有相当多的 #ifdef S(除非他们使用帮助函数来减少工作量)。

    特别糟糕的是qt本身不使用这些属性 QT创建者 设计器 或者,特别是在属性表这样的小部件中,较大的行高使其在较小的监视器上几乎毫无用处,因为您需要永远滚动才能找到您一直在寻找的属性。

        2
  •  1
  •   Mike McQuaid    15 年前

    为什么OSX上的qt看起来是默认的 字体过大?

    它默认为InterfaceBuilder和Qt Designer中的相同字体。

    即使选择相同的字体 手动调整字体大小 稍微大一点。

    原来这只是我的想象,它们完全一样。

    OSX上的qt是否使用其他字体 渲染到OSX?

    不,它使用原生渲染。

    如果使用qt 可可?

    字体不是,但其他东西确实会改变。Carbon和Cocoa之间的字体呈现似乎是相同的。

    另外,有qtconfig工具吗? 或相当于全局设置字体 所有Qt应用程序的设置?

    没有 qtconfig 用于OSX的工具或任何全局设置字体设置的方法。

    上述问题的根源似乎在于,与Windows或Linux相比,OSX应用程序在许多方面都倾向于使用稍微低一点的字体。因此,QtOSX应用程序中使用的字体大小应该手工调整,以更好地匹配平台上其他地方使用的字体大小。

        3
  •  0
  •   mkrus    12 年前

    如其他答案所述,您可以设置 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
    }