如何在我的应用程序中嵌入自定义字体

时间:2015-05-07 21:54:26

标签: c++ qt qt5

我想在我的应用程序中添加自定义字体,并且已经添加到我的资源文件中。

我的代码如下:

.qrc

<RCC> <qresource prefix="/fonts"> <file alias="ae_AlMateen">ae_AlMateen.ttf</file> </qresource> </RCC> 档案的内容。

addApplicationFont

但问题是-1总是返回:/fonts/ae_AlMateen.ttf

注意C://ae_AlMateen.ttf更改为直接路径ex:<?php $tokens = explode("/", $_SERVER[REQUEST_URI]); $number = $tokens[count($tokens) - 1]; $sql = "SELECT id, post_title, username, content_url, pro_pic, username FROM posts WHERE id = ".$number; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<br><div class='entire_post'><center><img class='pro_pic' src=http://cdn.bithumor.co/pro_pics/" . $row['pro_pic']. "></center><title>" . $row['post_title']. " </title><center><font face='HelveticaNeue-Light' font size='5'>" . $row['username']. "</font> </center><center><img class='upload' src=http://cdn.bithumor.co/uploads/" . $row["content_url"]. " width='100%'></center> " . $row["id"]. "<br></div>"; } $conn->close(); ?> 时效果正常。

我希望将字体文件与我的应用程序可执行文件集成,以使应用程序不需要附加字体文件。

2 个答案:

答案 0 :(得分:1)

如果您还使用qml,则可以在qml文件in this way中加载字体。我推荐它。

如果您仍想从cpp文件加载字体,请阅读this article,它可能对您有帮助。

修改: 以下代码可以在OSX10.10上的Qt5.4.1上运行。 (字体嵌入可执行文件中)

int id = QFontDatabase::addApplicationFont(":/fonts/fontawesome-webfont.ttf");
QMessageBox::information(NULL,"Message",QString::number(id));  // this shows id is 0.

QFont font;
font.setFamily("FontAwesome");
font.setPointSize(30);
ui->commandLinkButton->setFont(font);
ui->commandLinkButton->setText("\uf021"); // this shows the Refresh icon.

<强> EDIT2 : 我用Qt5.4.1(msvc2013 64bit)在Win7上做了另一个测试。该字体嵌入在exe文件中。一切正常。

答案 1 :(得分:0)

啊......现在,在你添加.qrc之后,我明白了。易于解释:

<file alias="ae_AlMateen">ae_AlMateen.ttf</file>

您在.qrc文件中添加了别名。如果您删除 alias =“ae_AlMateen”,它将按我们所有人的预期工作...扩展名为.ttf。