首页 > 其他分享 >实战|Qt开发WordBN笔记软件#10 添加Font Awesome字体图标

实战|Qt开发WordBN笔记软件#10 添加Font Awesome字体图标

时间:2024-07-28 17:59:44浏览次数:16  
标签:10 Qt 文件 Awesome 字体 QML webfont ttf 图标

01 背景

【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用Qt Quick(QML)开发语言。

本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言,从零开始开发一套真正的程序,包括国际化、版本发布、安装包制作等项目实战技巧。

本课程重点不是教你如何开发一个笔记软件,而是教你如何利用Qt/QML+C++开发一个完整的程序,整套课程规划有40+章节,敬请关注!


本章内容《#10 添加Font Awesome字体图标;自定义字体图标基础组件》

02 课程目标

  • 在QML工程引入Font Awesome字体图标功能。
  • 新建自定义字体图标基础组件YFontText,验证图标显示效果。

03 知识点

  • 字体图标:字体图标(Font Icons)是一种利用字体文件(如.ttf、.woff、.svg等格式)来显示图标的技术。它通过特殊的字体文件将图标作为字符(glyphs)嵌入到字体中,然后通过CSS样式将这些字符(即图标)渲染在页面上。字体图标相比传统的图片图标(如PNG、JPEG等),具有可缩放性、可定制性、兼容性、轻量级、易于使用、更新和维护等多种优势:
  • FontLoader:FontLoader是一个用于在QML页面中动态加载字体的元素,它允许开发者在应用程序运行时加载并使用自定义字体,而不是依赖于编译时包含的字体。FontLoader提供了灵活的方式来管理字体文件,支持通过名称、本地路径或网络URL等多种方式加载字体。
  • Text元素:Text元素用于在QML应用程序中显示文本。它是一个非常灵活和强大的组件,允许你控制文本的显示方式,包括字体、颜色、对齐方式等。

04 下载Font Awesome字体图标库

  • 下载文件:font-awesome-4.7.0.zip
  • 解压到任意目录下,取出 fontawesome-webfont.ttf、font-awesome.css 文件

  • fontawesome-webfont.ttf:字体图标文件,用于添加QT工程资源文件里面
  • font-awesome.css:CSS文件,用于查找字体图标编码

05 添加字体图标文件到Qt工程

  • 复制 fontawesome-webfont.ttf 文件到 源码工程根目录/resource 目录下:

  • 修改CMakeLists.txt文件,添加 fontawesome-webfont.ttf 文件到 qtaddqml_module 代码位置,如下示例:
qt_add_qml_module(appYourWordBN
    URI YourWordBN
    VERSION 1.0

    // ...
    RESOURCES resource/fontawesome-webfont.ttf

}

06 加载字体图标文件

  • 修改 YApplicationWindow.qml,利用 FontLoader 加载 fontawesome-webfont.ttf 字体,代码如下:
ApplicationWindow {

    // ...
    FontLoader {
        source: "/YourWordBN/resource/fontawesome-webfont.ttf"
    } // FontLoader
    
    // ...
}
    

07 使用字体图标

  • 新增 YFontText.qml 文件,使用 "FontAwesome" 字体名称,代码如下:
import QtQuick

Text {
    font.family: "FontAwesome"
    verticalAlignment: Text.AlignVCenter
    horizontalAlignment: Text.AlignHCenter
}
  • 显示字体图标效果,找到一个字体图标编码,如选择图标 fa-check 编码为 f00c,在QML里面使用代码如下:
YFontText {
    text: "uf00c"
    font.pointSize: 30
}

08 课后练习

  • 学会查找指定图标字体编码:

  • 用记事本打开 font-awesome.css,搜索 "fa-check" ,找到对应编码"f00c",如下图:

  • 查找笔记软件需要用到的图标,如退出程序、新建笔记、新建文件夹、帮助按钮等图标,用笔记软件记下来备用。

-End-

#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。

本人小杨哥:

超20年C++开发经验,独立软件开发;著名开源产品高并发C++应用服务器MYCP作者;开源企业即时通讯软件Entboost首席架构师;开发有WordBN字远笔记等共享软件产品。

招C++/Qt开发学员,欢迎关注咨询~~

标签:10,Qt,文件,Awesome,字体,QML,webfont,ttf,图标
From: https://blog.csdn.net/yanghz/article/details/140580050

相关文章

  • 【QT】QT 系统相关(事件、文件、多线程、网络、音视频)
    一、Qt事件1、事件介绍事件是应用程序内部或者外部产生的事情或者动作的统称。在Qt中使用一个对象来表示一个事件。所有的Qt事件均继承于抽象类QEvent。事件是由系统或者Qt平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发......
  • Java基础10:拓展运算符、字符串连接符、三元运算符
    扩展运算符publicstaticvoidmain(String[]args){ inta=10; intb=20; a+=b;//a=a+b System.out.println(a+":"+b);}字符串连接符"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。//字符串......
  • zzuli1057: 素数判定
    题目描述输入一个正整数n,判断n是否是素数,若n是素数,输出”Yes”,否则输出”No”。注意:1不是素数。输入输入一个正整数n(n<=1000)输出如果n是素数输出"Yes",否则输出"No"。输出占一行。样例输入2样例输出Yes本题考察求素数的方法,我在文章结束列举了3种方法,以......
  • zzuli1055: 兔子繁殖问题
    题目描述这是一个有趣的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少对兔子?输入输入月数n(1<......
  • 『模拟赛』暑假集训CSP提高模拟10
    RankA.黑暗型高松灯原[CF1025G]CompanyAcquisitions第一题直接上黑。B.速度型高松灯原[HNOI2011]数学作业想递推来着,但确实没考虑矩阵加速。对矩阵的掌握感觉也没那么好了,找机会复习得。按照下发题解里的矩阵是这样的:\[\begin{bmatrix}dp_i\\i+1\\1\end{bma......
  • 算法笔记|Day10栈与队列II
    算法笔记|Day10栈与队列II☆☆☆☆☆leetcode150.逆波兰表达式求值题目分析代码☆☆☆☆☆leetcode239.滑动窗口最大值题目分析代码☆☆☆☆☆leetcode347.前K个高频元素(待补充)题目分析代码☆☆☆☆☆leetcode150.逆波兰表达式求值题目链接:leetcode150.......
  • gym102114K. Kaleidoscope
    神必burnside题题目大意给出一个60面体,求用n种颜色染色的方案数(旋转同构),第i种要用至少\(c_i\)次对p取模(p不是质数)展开图:题解显然一眼burnside/polya,考虑求出所有的置换感受一下,一个二维的正方形需要1种顺时针旋转90°得到所有置换,一个三维的正方体需要2种90°旋转得到所......
  • STM32F103 SPI详解及示例代码
    1SPI协议详解 SPI是串行外设接口(SerialPeripheralInterface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚至超过10......
  • web期末作业设计网页/web前端开发期末大作业/html css网页制作成品(第51-60套/总计100
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 一文掌握YOLOv1-v10
    引言YOLO目标检测算法,不过多介绍,是基于深度学习的目标检测算法中最出名、发展最好的检测器,没有之一。本文简要的介绍一下从YOLOv1-YOLOv10的演化过程,详细技术细节不过多介绍,只提及改进点,适合初学者当综述阅读,也适合有基础的同学用于复习回顾。YOLO系列检测器的整体结构包......