【问题标题】:Qt fixed-width fontQt 等宽字体
【发布时间】:2012-06-11 09:15:30
【问题描述】:

我需要限制自定义小部件setFont(),使其仅接受固定宽度的字体。

但是,我找不到如何以编程方式定义特定的 QFont 是否是固定宽度的。有这种可能吗?

【问题讨论】:

    标签: qt font-size


    【解决方案1】:

    也许 bool QFontInfo::fixedPitch() 是您正在寻找的功能:

    void MyWidet::setFont ( const QFont& font )
    {
        QFontInfo fontInfo(font);
        if(fontInfo.fixedPitch())
            QWidget::setFont(font);
    
        // Otherwise ignore..
    }
    

    【讨论】:

    • 谢谢,阿马尔。让我有点困惑的是,QFontInfo::fixedPitch() 文档在 see also 部分包含QFont::fixedPitch(),但QFont 也有setFixedPitch() 方法。也就是说,fixed pitch 可以在字体上set……听起来很奇怪。
    • @DmitrySavchenko:QFontInfoQFont 更可靠。根据文档,QFont 访问函数返回设置的值,而QFontInfo 对象返回应用于实际用于绘制文本的字体(系统安装的字体)的值。因此,即使您调用font->setFixedPitch(true),它也会将该字体与实际系统字体匹配,然后进行绘制。
    • 好的,谢谢。我所需要的只是QFontInfo 是可靠的,无论QFont::setFixedPitch(true) 是否被某人调用。好像是这样。
    【解决方案2】:

    添加YourWidget->setStylesheet("QWidget{font: 10pt "Ubuntu";}");

    这样您可以将小部件大小限制为 10pt,字体类型为 Ubuntu,除非您以编程方式在其他地方进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 2020-12-17
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多