我正在寻找一个简单的逐步解决方案来在JUCE中嵌入字体。
我在应用程序中嵌入字体遇到了一些困难(在发布应用程序之前完全忘记了为此付出时间,现在我的应用程序在用户系统上不显示我的字体-可以理解为什么)。
我已经搜索并遵循了有关此主题的所有帖子,但仍然存在问题。我想将嵌入的字体添加到已经通过ProJucer GUI组件创建和布局的标签中。
我已完成以下工作:
1) 将字体添加到我的ProJucer会话中,以便它被添加到BinaryData中
2) 创建了一个名为“EmbeddedFont”的类:
#include "../JuceLibraryCode/JuceHeader.h"
class EmbeddedFonts
{
private:
Font calistoMT;
public:
EmbeddedFonts();
Font& getCalistoMT();
};
和
EmbeddedFonts::EmbeddedFonts()
{
// in the line below is where I'm getting the assertion error: jassert (typefaceName.isNotEmpty());
calistoMT = Font(Typeface::createSystemTypefaceFor(BinaryData::Calisto_MT,
BinaryData::Calisto_MTSize));
}
Font& EmbeddedFonts::getCalistoMT()
{
return calistoMT;
}
3) 在我的GUI组件类的标题中创建了一个实例 4) 尝试将此字体传递给标签字体:
3) 在GUI组件类的标题中创建一个实例 4) 尝试将该字体传递给标签字体:
genericLabelName->setFont(embeddedFont.getCalistoMT());
我不太确定该怎么做。另外,在我使嵌入字体工作后,是否应该在projucer GUI组件的字体字段中进行特定设置?我只需将其设置为相同的字体吗?我之所以问是因为在构造函数中我实际上会设置两次字体(一次来自GUI组件选项下拉菜单,一次来自手动编码的嵌入字体)。
我已经尝试了几天,仍然遇到困难。感谢任何帮助。这是我在发布下一个应用程序更新之前必须完成的最后一件事情,所以非常感谢任何协助。
calistoMT->setTypefaceName("来自字体的字体名称")
和setTypefaceStyle()
?浏览字体并确保您指定的字体类型是该字体支持的。 - James Poagjassert(typefaceName.isNotEmpty());
让我相信它弹出是因为typeFaceName包含一些文本,这使我认为它不应该有任何文本,但是无论它是否有文本,jassert仍然会弹出。 - JosephTLyons