PyQt在qrc文件中添加自定义字体并使用 |
您所在的位置:网站首页 › ios13安装第三方字体后怎么用 › PyQt在qrc文件中添加自定义字体并使用 |
PyQt在qrc文件中添加自定义字体并使用
使用pyqt开发程序时有时为了界面美观需要使用一些自定义的字体。 为了方便传播,需要将字体文件嵌入进数据中,这样软件发送给别人时,他人不必拥有指定字体也能看到美观的界面。 该文章主要描述了如何在qrc文件中添加自定义字体文件,并在编译成py文件后,在程序中正常使用该字体。 Step1在QtDesigner中新建qrc资源文件并添加指定字体。 此处我们以开源字体霞骛文楷举例。 fontFile/霞骛文楷.ttf关闭qrc文件,将qrc文件转换为py文件。 pyrcc5 test.qrc -o test_rc.py注:转换后的py文件要以“_rc”结尾 Step2打开主程序的py文件 from PyQt5.QtGui import QFontDatabase, QFont import test_rc # 此处直接导入qrc转换后的py文件 fontDb = QFontDatabase() fontID = fontDb.addApplicationFont(":resources/fontFile/霞骛文楷.ttf") # 此处的路径为qrc文件中的字体路径 fontFamilies = fontDb.applicationFontFamilies(fontID) print(fontFamilies) # ['LXGW WenKai'] self.setFont(QFont('LXGW WenKai'))在此需要阐明一个概念,即字体名和字体文件名是不一样的。 霞骛文楷.ttf的字体文件名为霞骛文楷.ttf,但是字体名却是LXGW WenKai,这个名字外部不会显示出来,需要通过调用程序读取。 在往程序中添加完字体后,使用返回的id获取字体的字体名,再通过setFont方法将其添加到程序中。 Step3此时无论是在QtDesigner还是主程序中,都可以通过直接在设置控件的字体样式为我们自定义的字体。 self.labelFileName1.setStyleSheet("QLabel {font: 28px \"LXGW WenKai\"; color: rgb(45, 98, 147);") QLabel { font: 28px "LXGW WenKai"; color: rgb(45, 98, 147); }此时直接使用字体名就可以,并且需要使用引号包裹,无需绝对路径。 Step4上述三个步骤,可以保证程序在运行时,字体显示不会错误,但是由于是在主程序中添加字体文件,只有运行时才会展示,在QtDesigner中,想要实时预览自定义字体效果应该怎样呢。 首先需要在QtDesigner中关掉当前的ui文件,这样“设置”下方的“附加字体”选项才会启用。 选中“设置”—>“附加字体”,添加自定义字体文件,可以看到,字体文件在被导入进时,会显示出字体文件的文件名和字体名(这也是快速获取字体名的一个方法) 这时候再重开ui文件,确保自己的qss字体名引用正确,就可以在QtDesigner中实时预览字体效果。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |