公众号:Qt那些事儿简介Qt中对于字体处理最常用的三个类QFontDataBaseQFontQFontInfo今天主要讲的是Qt在Linux下字体的基础-QFontDataBase类。QFontDataBaseQFontDataBase为Qt提供了当前系统所有可用的字体及其信息Linux平台Linux平台下,Qt解析字体相关的库使用的是FontConfig。Fontconfig是用于配置和自定义字体访问的库。Fontconfig可以:自动安装时发现新字体,从而消除了常见的配
cmake:
find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake:
QT += gui
注意:此类中的所有函数都是线程安全的。
此类的最常见用法是在数据库中查询字体系列(families)的列表以及每个系列可用的p
QFontDatabase fontbase;
//遍历本地字库
foreach (const QString &fontfamily, fontbase.families()) {
qDebug()<<fontfamily;
QString log;
int fontId = QFontDatabase::addApplicationFont("ukai.ttc");
QString
QFontDatabase: Cannot find font directory /home/tgm/qt/qt_sdk/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
QFontDatabase: Cannot find fon
QFontDatabase类提供了关于底层窗口系统中可用字体的信息。
这个类最常见的用途是查询数据库中每个字体族families()的列表和pointSizes()和styles()。pointSizes()的另一个替代方法是smoothSizes(),它返回指定字体和风格的sizes。
如果字体族可以从两个或更多的制造商,制造商名称包括在字体族名称中;例如:“Helvetica [Adobe]”和“Helvetica [Cronyx]”。当你指定一个字体族,你可以使用旧的连接字符“foundry-..
sudo apt-get install libfontconfig1-dev
./configure -qt-freetype -fontconfig -nomake examples -nomake docs -nomake demo
make && make install
cp xxx.ttf/...
在linux上装完qt之后,跑了一个简单的小程序,发现不支持中文,经过上网找资料研究发现,编译QT的时候没有编译字体库,于是重新编译QT,
. 首先配置一些编译Qt要用到的程序,使用以下命令:
sudo apt-get
install build-essential
libpcap0.8-dev
libx11-dev
libfreetype6-dev
libavahi-go
int fontId = QFontDatabase::addApplicationFont(qApp->applicationDirPath() + "/Styles/fontawesome-webfont.ttf");
QString fontName = QFontDatabase::applicationFontFamilies(fontId).at(0);
Qt应用程序中设置字体
应用程序中常常须要设置字体。比如office软件或者是其它的编辑器软件等等。这里主要涉及到例如以下几个概念:字体,字号以及风格(比如:粗体,斜体。下划线等等)。Qt里面也有相应的类。接下来我们主要对这几个类进行具体的说明。最后举例说明它们的应用。
1、Qt中相关的类:...
在Qt中,可以通过添加自己的字体库来使用自定义字体。具体步骤如下:
1. 将字体文件(.ttf或.otf格式)添加到你的应用程序文件夹中,或者将它们放在系统字体库目录之一中,比如在Linux系统中是/usr/share/fonts目录。
2. 在Qt应用程序中,使用QFontDatabase类加载字体。例如,以下代码演示如何加载名为“myfont.ttf”的字体文件:
QFontDatabase::addApplicationFont(":/fonts/myfont.ttf");
其中,addApplicationFont()函数接受字体文件路径作为参数,路径可以是相对路径或绝对路径。冒号后面的“/fonts”表示字体文件在Qt资源文件中的路径。
3. 加载字体后,可以使用QFont类来设置自定义字体。例如,以下代码使用“myfont”字体来设置标签的字体:
QFont font("myfont");
font.setPointSize(12);
ui->label->setFont(font);
这些步骤可以帮助你在Qt应用程序中添加自己的字体库。