我正在寻找一个简单的逐步解决方案,在JUCE中嵌入字体.
我在我的应用程序中嵌入字体时遇到了一些麻烦(完全忘了在应用程序发布之前把时间花在这上面,现在我的应用程序没有在用户系统上显示我的字体 - 这是可以理解的).
我已经搜索并关注了有关该主题的所有帖子,但我仍然遇到问题.我想将嵌入字体添加到我的应用程序中已存在的标签中,这些标签是我们创建的,并通过ProJucer GUI组件进行布局.
到目前为止我做了什么:
1)将字体添加到我的ProJucer会话中,以便将其添加到BinaryData
2)创建了一个名为"EmbeddedFont:"的类
#include "../JuceLibraryCode/JuceHeader.h"
class EmbeddedFonts
{
private:
Font calistoMT;
public:
EmbeddedFonts();
Font& getCalistoMT();
};
Run Code Online (Sandbox Code Playgroud)
和
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;
}
Run Code Online (Sandbox Code Playgroud)
3)在我的GUI组件类的标题中创建了一个这样的实例4)尝试将此字体传递给标签字体:
genericLabelName->setFont(embeddedFont.getCalistoMT());
Run Code Online (Sandbox Code Playgroud)
不确定从这里做什么.此外,在我使嵌入字体工作后,我应该对projucer GUI组件中的字体字段做些什么?我应该把它设置为相同的字体吗?我只是问,因为我在技术上会在构造函数中设置两次字体(一次来自GUI Component选项下拉菜单,一次是手工编写嵌入字体).
我已经尝试了几天,但仍然遇到麻烦.谢谢你的帮助.这是我在发布下一个应用更新之前需要做的最后一件事,所以非常感谢任何帮助.
我最近开始研究lambdas供个人使用.我已经编写了几年了,我已经发布了多种产品,但是,我从未发现自己需要使用lambdas.我已经阅读了各种lambda问题的其他堆栈交换答案,但是我没有找到一个解释,它显示了一个非常简单的例子,它真正推动了lambdas是必要的(在某些情况下).在做了一些研究之后,我不相信lambdas的某些特定用法不能用标准函数实现,但是,这并不意味着太多,因为我的主题范围非常有限.
有人可以为lambda提供一个相当简单的用例,演示它们如何比典型函数更强大(在正确的情况下)?
当我开始在include语句中键入标准头文件名时,我不再获得任何自动完成结果:
#include <>
Run Code Online (Sandbox Code Playgroud)
通常,输入一个名称(例如vector或string)会导致自动完成列表打开并显示这些库名称的结果,但它不会在Xcode 10中发生.我正在为其他标题获得一些自动完成结果,但没有任何相关的标准的C++库.有没有人知道任何解决方法或解决方案?我在Apple开发者论坛上问道,但是一周后我没有得到任何帮助.
我知道标准C++库文件的目录是:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1
Run Code Online (Sandbox Code Playgroud)
但我不知道这将放在Xcode中,希望能够让它自动完成Xcode中所有项目的头文件(而不仅仅是加载任何特定项目.
任何帮助是极大的赞赏.
标题有点啰嗦,但基本上,我写了一个应用程序,读取和写入其输入和输出到文本文件.整个时间,它会直接在与我的Xcode派生数据 - > project-> build-> products-> debug文件夹相同的目录中读取和写入文件.这是写入和读取所有内容的地方.我没有为应用程序设置自定义路径,因此只需保存应用程序所在的位置即可.有史以来第一次,我运行Apple的Instruments应用程序,试图学习如何使用分析器.在选择此应用程序作为Instruments中的目标后不久,我又回到了Xcode应用程序来运行该程序.在Xcode中一切正常.它从文件中读取并打印到与文件夹相同位置的文件,但是如果我尝试通过单击文件并使其打开终端来运行实际程序本身,则它不再读取或打印到应用程序所在的目录相反,它从我的主文件夹打印和读取.我不知道是什么改变了或是什么导致它改变,但我希望它是一个简单的修复.我希望应用程序能够从文件中读取文件并从其所在的目录中打印文件.我不确定它是Xcode设置还是终端设置.
任何帮助将不胜感激.
更新1:尝试没有运气:
目录字段是空白的,所以我认为这将是解决方案,但填写它的建议没有做任何事情来缓解这个问题.
更新2:
刚刚尝试删除首选项文件,仍然没有解决方案.我愿意给别人一个声誉.我没有很多,因为我是一个新成员,但我会给那个人认为是公平的,给予解决它的人.我很绝望,真的不想等待2天才能解决这个问题.
更新3:
尝试将方案部分的"配置文件(发布) - >选项区域中的默认路径更改为更新1中建议的默认变量.没有运气.我开始失去理智.
更新4:
我已经尝试完全删除该方案并制作一个新方案,希望可能存在一些与该方案混淆的东西,但这并没有解决问题.在Xcode中运行应用程序时的输入和输出仍在使用工作目录,而在调试文件夹中运行可执行文件则使用主文件夹.
更新5:
刚刚在旧的iMac和Xcode设置(OS 10.8.5和Xcode 5.1.1)上测试了它,它似乎正常工作,读取和写入调试文件夹中应用程序的当前工作目录.
问这个问题似乎有点荒谬,但我正在努力为此找到一个好的系统。是否有用于存储和组织第三方开发库的标准化系统?我深受强迫症困扰,认为自己是一个“整洁的怪胎”,所以我倾向于使用大量目录/子目录来组织项目,但由于我是一个新的开发人员,我最近才开始涉足 3rd 方库我不知道如何组织它们。我会使用大量文件夹并创建一个巨大的层次结构,但是这样做可能会导致#includes我的源代码中的绝对路径非常长。有什么建议?
来自使用JUCE中的可视WYSISWYG编辑器制作单页应用程序,我在确定如何调用新窗口(在主GUI窗口之外)时遇到了一些麻烦.我创建了一个测试应用程序,它只有一个我用可视化编辑器创建的小型主GUI.它有一个"制作新窗口"按钮.我的目标是能够单击该按钮并弹出一个新窗口,并且这个新窗口是JUCE"GUI组件"(AKA,图形/可视GUI编辑器文件).现在,我竟然有点实现这一点,但是,其引发错误和断言,所以这将是伟大的得到一个非常简单的,一步一步的教程.
我研究了Projucer自动创建的main.cpp文件,以便了解它们如何创建窗口.这就是我做的.
1)在我的项目中,我添加了一个新的GUI组件(它成为一个类)并将其称为"InvokedWindow".2)在我的主GUI组件类头中,我添加了一个类型为InvokedWindow的新范围指针:ScopedPointer<InvokedWindow> invokedWindow;
3)我在主GUI编辑器中创建了一个名为"Make New Window"的新按钮,并将其添加到处理程序代码中:
newWindowPtr = new InvokedWindow;这样任何时候按下按钮,创建一个InvokedWindow类型的新对象.4)在InvokedWindow类中,在构造函数中,在自动生成的代码之上,我添加了:
setUsingNativeTitleBar (true);
setCentrePosition(400, 400);
setVisible (true);
setResizable(false, false);
Run Code Online (Sandbox Code Playgroud)
我从JUCE应用程序的主文件中获得了哪些内容.
我还在这个新窗口中添加了一个滑块,只是为了添加它的功能.
5)我添加了一个重载函数让我关闭窗口:
void InvokedWindow::closeButtonPressed()
{
delete this;
}
Run Code Online (Sandbox Code Playgroud)
所以,现在当我运行应用程序并单击make new window按钮时,会弹出一个新窗口,但是我得到一个断言:
/* Agh! You shouldn't add components directly to a ResizableWindow - this class
manages its child components automatically, and if you add your own it'll cause
trouble. Instead, use setContentComponent() to give it a component which
will be automatically resized and kept in the right …Run Code Online (Sandbox Code Playgroud) 我会诚实地说,这是我完成作业所需的一小段代码.我知道社区对帮助学生非常怀疑,但在过去的5个小时里我一直在靠近墙壁,并且在这项任务中没有任何成就.我从来没有在任何任务上寻求帮助,但没有人给我这么多麻烦.
所有我遇到的麻烦都是让程序剥离出领先的空白区域.我想我可以处理剩下的事了.我不是要求我的整体任务的解决方案,只是在这一个特定部分的推动.
我会在这里发布完整的作业文本,但我不是发布它以试图获得完整的解决方案,我只发布它以便其他人可以看到我必须使用的条件.
"这个功课将为你提供更多编写函数的练习,以及如何将数字读入变量.你需要编写一个函数,将无符号整数读入unsigned short int类型的变量.这个函数的最大值为65535 ,函数需要处理非法数字.你不能在函数内部使用"cin >>".数字输入的规则基本如下:
1)跳过所有前导空格2)找到的第一个字符必须是数字否则将发生错误3)然后一次处理一个数字字符并与数字4结合处理非数字时发现处理停止
我们将遵循这些规则并添加错误处理和溢出.如果在数字之前进行非法输入而不是错误代码"1"将被发回,如果发生溢出,这个数字大于65535,则将发回错误代码"2".如果没有错误,则返回"0".
确保main函数将继续循环,直到用户输入"n"或"N"为NO,main应该测试从"ReadInt"函数返回的错误代码并显示相应的错误消息或显示数字没有错误.注意设计"ReadInt"函数,它应该是值返回并具有引用参数.该函数需要从输入缓冲区一次处理一个字符并以正确的方式处理它.读入数字后,请确保输入缓冲区为空,否则main中的循环可能无法正常工作.我知道这不是提取的工作方式,但让我们这样做.
您不需要使用此分配输入算法,但我建议您编写一个.调试器也可能有用.你基本上重写了提取运算符,因为它适用于整数."
我的大多数代码都没有意义,因为我一直在删除东西并添加疯狂的东西来尝试我能想到的一切.
#include <iostream>
#include <CTYPE.h>
using namespace std;
int ReadInt (unsigned short int &UserIn);
int main()
{
int Error;
unsigned short int UserInput;
char RepeatProgram;
do
{
Error=ReadInt(UserInput);
if (Error==0)
cout << "Number is " << UserInput << endl;
else if (Error==1)
cout << "Illegal Data Entry\n";
else if (Error==2)
cout << "Numerical overflow, number too big\n";
cout << "Continue? n/N to quit: ";
cin >> …Run Code Online (Sandbox Code Playgroud) 这类运营商是否有特定名称?
Sum += 1;
Run Code Online (Sandbox Code Playgroud)
我在我的第一个C++课程中学到了它并且用了很多,但我从来不知道是否有一个简短的名字.
好吧,经过一整年的编程并且只了解数组之后,我意识到了向量的存在(由 StackOverflow 的一些成员在我之前的一篇文章中)。我自己做了大量的研究和研究,并重写了我用数组、链表和向量编写的整个应用程序。此时,我不确定是否还会使用数组,因为向量似乎更加灵活和高效。由于它们具有自动增大和缩小大小的能力,我不知道我是否会同样多地使用数组。在这一点上,我个人认为数组的唯一优点是更容易编写和理解。数组的学习曲线没什么,向量的学习曲线很小。不管怎样,我确信在某些情况下使用数组和在其他情况下使用向量可能有充分的理由,我只是好奇社区的想法。我完全是一个新手,所以我认为我对两者的严格用法都不够了解。
如果有人稍微好奇的话,这就是我正在练习使用向量的应用程序。它真的很粗糙,需要大量的工作: https ://github.com/JosephTLyons/Joseph-Lyons-Contact-Book-Application
我已经做了一些寻找解决方案(或者之前提出的关于SO的问题),但所有这些都是在程序输出中格式化数字的结果,这不是我正在寻找的.我的问题是,是否有任何解决方案来格式化大数字IN代码(不是程序的输出),使它们更容易阅读.
例如
int main()
{
int LargeNumber = 1000000;
}
Run Code Online (Sandbox Code Playgroud)
这个数字可容纳100万,但如果不将光标移到它上面并计数,就不会轻易告诉它.除了使用评论之外,还有什么好的解决方案吗?
int main()
{
int LargeNumber = 1000000;//1,000,000
}
Run Code Online (Sandbox Code Playgroud)
谢谢.