Qt扫盲-QFontDatabase理论

news2024/11/19 1:33:29

QFontDatabase理论

  • 一、概述
  • 二、常用功能

一、概述

QFontDatabase 类提供有关底层窗口系统中可用字体的信息。

这个类最常见的用途是查询数据库中的字体系列列表()以及每个系列可用的 pointSizes() 和 styles()。pointSizes() 的另一种替代方法 是smoothSizes(),它返回给定的字体族和风格看起来有吸引力的大小。

如果字体系列可从两个或两个以上的字体工厂获得,则字体工厂名称包括在字体系列名称中;例如:“Helvetica [Adobe]”和“Helvetica [cronix]”。当你指定一个家族时,你可以使用旧的以连字符连接的 “foundry-family” 格式,也可以使用带括号的 “family [foundry]” 格式;;例如:“Cronyx-Helvetica” 或 “Helvetica [Cronyx]”。

如果家族有一个字体工厂,它总是使用括号格式返回,就像families()返回值的情况一样。

font() 函数的作用是:返回给定字体族、样式和字体点大小的QFont。

可以检查family和style组合,看看它是斜体(italic)还是粗体(bold),并检索它的权重(weight)。类似地,我们可以调用isBitmapScalable(), isSmoothlyScalable(), isScalable()和isFixedPitch()。

使用styleString()获取样式的文本版本。返回的就是 “Bold Italic”, “Bold”, “Italic” 或者 “Normal” 这种形式的。

二、常用功能

QFontDatabase类还支持一些静态函数,例如standardSizes()。

在这里插入图片描述

我们可以使用writingSystemName()检索书写系统的描述,并使用writingSystemSample()检索书写系统中的字符样本。
例子:

QFontDatabase database;
QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");

const QStringList fontFamilies = database.families();
for (const QString &family : fontFamilies) {
          QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
          familyItem->setText(0, family);

          const QStringList fontStyles = database.styles(family);
          for (const QString &style : fontStyles) {
              QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
              styleItem->setText(0, style);

              QString sizes;
              const QList<int> smoothSizes = database.smoothSizes(family, style)
              for (int points : smoothSizes)
                  sizes += QString::number(points) + ' ';

              styleItem->setText(1, sizes.trimmed());
          }
}

这个示例获取字体系列列表、每个系列的样式列表,以及每种系列和样式组合可用的点大小,并在树视图中显示这些信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1155375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用传感器融合的前方碰撞预警-(Forward Collision Warning Using Sensor Fusion)

这个例子matlab自动驾驶工具箱中关于使用传感器融合的前方碰撞预警-(Forward Collision Warning Using Sensor Fusion)例子&#xff0c;其展示了如何通过融合视觉和雷达传感器的数据来跟踪车辆前方的物体&#xff0c;从而实现前向碰撞预警系统的开发与验证。 1 概述 前方碰撞…

Java体系性能测试进阶必须了解的知识点——Thread Dump

Thread Dump定义 Java Thread dump记录了线程在jvm中的执行信息&#xff0c;可以看成是线程活动的日志。Java线程转储文件有助于分析应用程序和死锁情况中的瓶颈。Thread Dump是非常有用的诊断Java应用问题的工具。它提供了当前活动线程的快照及JVM中所有Java线程的堆栈跟踪信…

【计算机网络】传输层——TCP

目录 1.概念2.可靠性概念3.TCP协议格式序号和确认序号窗口大小六个标志位 4.TCP可靠性保障确认应答机制&#xff08;ACK&#xff09;超时重传机制连接管理机制流量控制拥塞控制 5.TCP提高性能滑动窗口延迟应答捎带应答 6.面向字节流7.粘包问题8.TCP异常情况9.TCP总结 1.概念 T…

MES 价值点之数据追随

在现代制造业中&#xff0c;数据追溯已经越来越得到重视&#xff0c;特别是那些推行精益生产的企业重要性就更加突出了&#xff0c;而制造执行系统&#xff08;MES&#xff09;作为一种关键的生产管理工具&#xff0c;是能很好的为制造企业提供数据追溯功能。今天&#xff0c;和…

基因家族扩张与收缩分析-CAFE5

CAFE(Computational Analysis of gene Family Evolution)是一款以解释系统发育历史的方式分析基因家族大小变化的软件&#xff0c;这种分析常被称为基因家族收缩扩张(Gene family expansions and contractions)分析。 CAFE使用出生和死亡过程来模拟用户指定的系统发育树中的基…

剑指JUC原理-7.线程状态与ReentrantLock

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

Linux的开发环境安装配置与后端项目部署

目录 一.安装开发环境 1.准备阶段 1.1 创建新目录 1.2 解压文件 2.JDK的安装与配置环境变量 2.1 解压jdk压缩包 2.2 配置环境变量 2.3 设置环境变量生效 2.4 验证是否安装成功 3.Tomcat的安装与使用 3.1 解压安装 3.2 开启服务 3.3 开放端口 3.4 访问成功 4.MySQ…

Python的错误和异常处理

一、错误和异常 编程中出现的错误大致可以分为两类&#xff1a;错误和异常。 (一)错误 错误又可以分为两类&#xff1a;语法错误和逻辑错误。 1. 语法错误 语法错误又称解析错误&#xff0c;它是指在编写程序时&#xff0c;程序的语法不符合Python语言的规范&#xff0c;导致…

虚拟机和Windows的文件传输

拖拽/复制粘贴 直接将虚拟机linux系统的文件拖曳到windows桌面&#xff0c;或者直接将windows的文件拖曳到虚拟机linux系统当中&#xff0c;可以实现文件传输。当然复制粘贴方式也可以&#xff0c;但是前提是需要下载安装好VMware tools。 共享文件夹 概念&#xff1a;在Win…

阿里在盘古云存储系统中部署RDMA的经验谈

1 阿里如何进行RDMA部署 1.1 RDMA部署规划中的考虑因素 存储集群的部署规划控制着网络拓扑结构、RDMA通信范围、存储节点配置等&#xff0c;必须考虑多种因素&#xff0c;包括存储容量与需求的匹配、硬件成本的控制、性能的优化、可用性和SLA风险的最小化。最终的结果是所有这…

cmake构建多项目编译

项目结构如下 CMakeLists清单 最外层的主CMakeLists cmake_minimum_required(VERSION 3.17) project(cmakeMulPackage)set(CMAKE_CXX_STANDARD 11)#添加一个子目录并构建该子目录 add_subdirectory(proj1) add_subdirectory(proj2)#定义头文件路径 include_directories(proj1…

【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口

一、作用 工具的组合为开发者和系统管理员提供了构建和运行Java应用程序以及存储和管理数据的完整环境。 JDK&#xff08;Java Development Kit&#xff09;&#xff1a;JDK是Java开发工具包&#xff0c;它提供了开发和运行Java应用程序所需的工具和库。通过安装JDK&#xff0c…

跟着Nature正刊学作图 | 双轴柱状+折线散点图!

&#x1f4cb;文章目录 复现图片设置工作路径和加载相关R包读取数据集数据可视化计算均值和标准差可视化过程 跟着「Nature」正刊学作图&#xff0c;今天复现Nature文章中的一张双轴图–左边为分组柱状图、右边为折线散点图。 复现图片 图中的a是我们今天准备复刻的&#xff0c…

电子电器架构 —— 车载网关初入门(三)

电子电器架构 —— 车载网关初入门(三) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关…

深度学习数据集大合集—疾病、植物、汽车等

最近又收集了一大批深度学习数据集&#xff0c;今天分享给大家&#xff01;废话不多说&#xff0c;直接上数据&#xff01; 1、招聘欺诈数据集 招聘欺诈数据集&#xff1a;共收集了 200,000 条数据&#xff0c;来自三个网站。 该数据集共收集了 200.000 条数据&#xff0c;分别…

思维训练 第四课 省略句

系列文章目录 文章目录 系列文章目录前言一、省略的十五种情况1.并列复合句中某些相同成分的省略2.在用when, while, if, as if, though, although, as ,until, whether等连词引导的状语从句中&#xff0c;如果谓语有be,而主语又跟主句的主语相同或是&#xff08;从句主语是&am…

table 表体滚动, 表头、表尾固定

在开发报表中&#xff0c;如果报表数据行过多页面无法全部显示&#xff0c;或者内容溢出div&#xff0c;需要把表头和表尾固定表体滚动这样就可以在页面上全部显示&#xff0c;并且不会溢出div 效果&#xff1a;最终实现效果 代码&#xff1a;<!DOCTYPE html> <html&g…

Spring Security 中自定义权限表达式

Spring Security 中自定义权限表达式 一. SpEL中使用自定义Bean二. 通过类继承自定义权限表达式2.1 自定义 ExpressionRoot 三. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在…

Thread

Thread 线程启动线程第一种创建线程线程的第二种创建方式使用匿名内部类完成线程的两种创建 Thread API线程的优先级线程提供的静态方法守护线程用户线程和守护线程的区别体现在进程结束时 多线并发安全问题同步块 线程 启动线程 启动线程:调用线程的start方法,而不是直接调用…

新版Idea显示Git提交人信息

新版Idea的类和方法上会展示开发者信息 不想展示的话可以做以下配置&#xff1a;