在这篇文章中,我们将展示如何在我们的QML应用中使用不同的font.我们既可以使用本地应用带有的字体,也可以使用系统带有的字体.我们也展示了如何使用一个在网路上的字体.

为了使用字体,我们可以通过如下的方式来使用它:

       Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWrapfont.family: "Times"font.pixelSize: size}

具体的使用说明可以参考连接 QML Text.当然,我们也可以使用一种简洁的格式:

       Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWraphorizontalAlignment: Text.AlignHCenterfont { family: "Times"; pixelSize: size; capitalization: Font.AllUppercase }}

我们可以在上面一行中定义font的所有的属性.

为了使用不同的font,我们可以使用FontLoader来装载我们的font:

    FontLoader { id: fixedFont; name: "Courier" }FontLoader { id: localFont; source: "content/fonts/tarzeau_ocr_a.ttf" }FontLoader { id: webFont; source: "http://www.princexml.com/fonts/steffmann/Starburst.ttf" }

在上面的代码中,我们使用了本地的Courier字体,我们也使用了在本地文件目录中的字体tarzeau_ocr_a.ttf,同时我们也定义了一个网路的字体.该字体文件存在于网路的一个 地址.在实际的使用中,该字体将本载入到我们的应用中使用.

为了说明问题,我们直接把我的源码写出来:

Fonts.qml

import QtQuick 2.0Rectangle {property string myText: "The quick brown fox jumps over the lazy dog."width: 320; height: 480color: "steelblue"FontLoader { id: fixedFont; name: "Courier" }FontLoader { id: localFont; source: "content/fonts/tarzeau_ocr_a.ttf" }FontLoader { id: webFont; source: "http://www.princexml.com/fonts/steffmann/Starburst.ttf" }property int size: 40Column {anchors { fill: parent; leftMargin: 10; rightMargin: 10; topMargin: 10 }spacing: 15Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWrapfont.family: "Times"font.pixelSize: size}Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWraphorizontalAlignment: Text.AlignHCenterfont { family: "Times"; pixelSize: size; capitalization: Font.AllUppercase }}Text {text: myTextcolor: "lightsteelblue"width: parent.widthhorizontalAlignment: Text.AlignRightwrapMode: Text.WordWrapfont { family: fixedFont.name; pixelSize: size; weight: Font.Bold; capitalization: Font.AllLowercase }}Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWrapfont { family: fixedFont.name; pixelSize: size; italic: true; capitalization: Font.SmallCaps }}Text {text: myTextcolor: "lightsteelblue"width: parent.widthwrapMode: Text.WordWrapfont { family: localFont.name; pixelSize: size; capitalization: Font.Capitalize }}Text {text: {if (webFont.status == FontLoader.Ready) myTextelse if (webFont.status == FontLoader.Loading) "Loading..."else if (webFont.status == FontLoader.Error) "Error loading font"}color: "lightsteelblue"width: parent.widthwrapMode: Text.WordWrapfont.family: webFont.name; font.pixelSize: size}}
}

运行我们的应用,显示的画面为:

我们的源码地址为:https://github.com/liu-xiao-guo/fonts

如何在QML中使用不同的字体(font)相关推荐

  1. 如何在Axure中使用Iconfont图标字体

    需求背景 在原型设计中,图标是我们使用率非常高的元素,通常我们会选择将图标导出为图片放到Axure里使用,或者使用Axure的图标元件库,但是他们使用起来会有很多不方便的地方: 图片进行缩放会失真,无 ...

  2. 如何在qml中使用opengl接口进行渲染

    在QWidget中,可以使用QOpenglWidget调用opengl接口进行渲染,因为QWidget大部分控件都是依赖于平台的(cpu绘制),所以我们调用opengl的接口时不需要考虑opengl的 ...

  3. 教你如何在Unity3D中快速制作自定义字体。

        自己的游戏有自己想要的字体,这个需求很常见.如何,以及如何快速的在unity中制作出自定义字体,这个技术你值得拥有,我值得共享.不喜欢废话,直入主题了. 什么叫自定义字体? 看到没,给你一些这 ...

  4. js点击按钮改变字体大小并给他颜色_如何在Elementor中修改文本的字体、大小、颜色、样式...

    本文将介绍Elementor网页编辑器中如何修改文本的字体.大小.颜色和样式. 原文首发于:https://loyseo.com/how-to-change-font-size-color-famil ...

  5. 如何在ppt中带走自己的字体

    在一台电脑上制作好的演示文稿,复制到另一台电脑上播放时,可能由于两台电脑安装的字体不同,影响到演示文稿的播放效果.那么,能不能将自己设置的字体一并带走呢? 解决方法:如果你所设置的是"Tru ...

  6. html中如何使用渐变颜色代码,html – 如何在CSS中使用渐变作为字体颜色?

    您可以使用位于彼此顶部的多个跨度,并为其中的每一个分配不同的高度和颜色.它真的很丑的编码明智,但它的作品. http://jsfiddle.net/7yBNv/ 文本选择行为有点时髦,但不是太糟糕.并 ...

  7. 【Ps】如何在ps中导入新的字体

  8. (译)通过WebChannel/WebSockets与QML中的HTML交互

    来源:通过WebChannel/WebSockets与QML中的HTML交互 GitHub:八至 作者:狐狸家的鱼 本文链接:QML与HTML交互 在查询QML与HTML之间通信交互时资料很少,这篇文 ...

  9. java中的BaseFont,iText,Font,BaseFont和createFont()发生了什么? | 所有编程讨论 | zhouni.net...

    问题 iText,Font,BaseFont和createFont()发生了什么? 关于font和basefont发生了什么,我有很多神秘感.特别是在构造函数方面. iText网站将此行作为新字体的示 ...

最新文章

  1. 推荐5最佳免费图像注释工具
  2. java语言仅支持单重继承_java语言程序设计基础篇习题_复习题_第十一章
  3. 赋能RPA时代,微软发布通用文档理解预训练模型LayoutLM
  4. (chap6 Http首部) 响应首部字段 Accept-RangeAge Etag
  5. 2019年 第10届 蓝桥杯 Java B组 省赛真题详解及总结
  6. 微信公众平台开发—利用OAuth2.0获取微信用户基本信息
  7. matlab里sconv原理_第6章 信号的时域分析及Matlab实现.ppt
  8. python中面向对象_简述Python中的面向对象编程的概念
  9. 数字信号处理3个作业-----作业3自相关与Burg求解AR模型系数以估计其功率谱
  10. 备受推崇的《R语言实战》真的值得如此好评吗?
  11. BufferedWriter使用write方法如何换行
  12. php转换时间戳的一些方法
  13. Access to XMLHttpRequest at 'XXX' from origin 'XX' has been blocked by CORS policy: No 'Access-Contr
  14. ubuntu qt平台搭建openssl开发环境
  15. 经验总结 黑客入侵网络的50种方法2
  16. 甲方安全之仿真钓鱼演练(邮件+网站钓鱼)
  17. front UAG in 10 minutes
  18. 几何公差之基准要素的管控
  19. 华清远见-重庆中心-JAVA高级阶段技术总结/知识点梳理/个人总结
  20. 水平视角垂直视角概念

热门文章

  1. Redis分布式锁实现原理
  2. 打造软硬件结合的机器人:WuKonChatBot(悟空)聊天机器人
  3. python 英雄联盟商城登录,注册界面程序
  4. win服务器文件权限问题,win服务器 文件夹权限设置
  5. Shader-旗帜飘动
  6. onvif实现抓图功能
  7. 办公软件有哪些,新装电脑常用的办公软件
  8. 最新推荐:【凯立德 移动导航系统】【V4.0 破解版】3D高清地图
  9. windows 下cmake的使用
  10. window 文件名特殊字符替换