我正在寻找一个简单的逐步解决方案,在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选项下拉菜单,一次是手工编写嵌入字体).
我已经尝试了几天,但仍然遇到麻烦.谢谢你的帮助.这是我在发布下一个应用更新之前需要做的最后一件事,所以非常感谢任何帮助.
任何人都可以推荐一个操作指南或简要概述将OpenCV与更大的基于GUI的程序集成的内容吗?有哪些流行的方法呢?
特别是,在不使用HighGUI 进行视频捕获/预览的同时使用OpenCV处理视频看起来特别神秘.我希望有人能揭开神秘面纱.
我的特殊配置是使用Juce或Qt,具体取决于可以做什么.跨平台的事情并不重要 - 如果在Windows中有一个很棒的方法,我可能会相信.社区支持的可用性很重要.
我听说HighGUI完全用于测试,不适合实际应用.有人推荐了VideoInput库,但它是实验性的.
emit在帧捕获后发出信号.使用Qt的msleep机制,而不是OpenCV.因此,我们仍在使用OpenCV highgui进行捕获.将cv :: Mat转换为QtImage:
QImage qtFrame(cvFrame.data, cvFrame.size().width, cvFrame.size().height, cvFrame.step, QImage::Format_RGB888);
qtFrame = qtFrame.rgbSwapped();
可选:使用GLWidget渲染.使用Qt内置方法将QtImage转换为GLFormat:
m_GLFrame = QGLWidget::convertToGLFormat(frame);
this->updateGL();
我正在研究具有32位架构的JUCE库的非常古老的项目.几天前,我确实将它从32位转换为64位架构,并且出现了问题.而JUCE库也有C++代码,很难理解为什么会出现错误.
我收到了以下错误.
Cast from pointer to smaller type 'pointer_sized_int' (aka 'int') loses information
Run Code Online (Sandbox Code Playgroud)
在pointer_sized_int变量.
而且我也尝试设置,long pointer_sized_int但发生了一些其他错误.
Implicit instantiation of undefined template 'juce::JuceStaticAssert<false>'
Run Code Online (Sandbox Code Playgroud)
我的意思是这个库与64位架构不兼容.(我正在使用)
基本上我在项目的源代码中使用了"JUCE Amalgamation"库,我也找到了这个库,并且还包含在我的项目中(我试过很多方法来修复它)但是没有成功.
以前有人遇到过这类问题吗?请建议我如何解决这个问题.
谢谢.
来自使用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) 我一直在尝试在 Linux debian 上编译一个 JUCE 项目,但是一行给了我一个错误:
#include <ft2build.h>
Run Code Online (Sandbox Code Playgroud)
并停止编译。我如何链接到这个文件?
是否有任何插件可用于Juce库我可以添加,哪些可以适用于IOS和Android?如果没有,我如何Juce在我的手机间隙应用程序中集成库?
我阅读了很多相关主题(如1、2、3),但我自己没有找到答案,所以我在这里。
我有一个构建和可执行的 CMake 项目,比如说“x”。我创建了一个名为“a.so”的共享库,它依赖于其他名为“b.so”的共享库。我想在“x”中使用“a”。
这是我简化的“x”CMakelists.txt:
SET(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
LINK_DIRECTORIES(${ROOT_DIR}/lib/a/bin/) # contains liba.so
INCLUDE_DIRECTORIES(${ROOT_DIR}/lib/a/include/) # contains "a" headers
ADD_EXECUTABLE(x ${SOURCE})
TARGET_LINK_LIBRARIES(x a)
Run Code Online (Sandbox Code Playgroud)
"x" 编译输出摘录:
Linking CXX executable ../bin/x
/usr/bin/cmake -E cmake_link_script CMakeFiles/x.dir/link.txt --verbose=1
/usr/lib64/ccache/c++ -std=c++0x CMakeFiles/x.dir/src/main /Main.cpp.o
... -L/.../lib/a/bin -rdynamic -la -Wl,-rpath,/.../lib/a/bin
Run Code Online (Sandbox Code Playgroud)
“a”和“b”可以编译。
问题是当我想编译 x 时,我在链接时出错:未定义对“函数名称”的引用。 我也尝试链接到“b”,但它仍然无法正常工作。
这里“b”也出现了,但我得到了同样的错误......
Linking CXX executable ../bin/x
/usr/bin/cmake -E cmake_link_script CMakeFiles/x.dir/link.txt --verbose=1
/usr/lib64/ccache/c++ -std=c++0x CMakeFiles/x.dir/src/main
/Main.cpp.o -o ../bin/x -L/.../lib/b/bin -L/.../lib/a/bin
-rdynamic -lb -la -Wl,-rpath,/.../lib/b/bin:/.../lib/a/bin
Run Code Online (Sandbox Code Playgroud)
这是错误输出:
$ make
[ 20%] Automatic …Run Code Online (Sandbox Code Playgroud) 我试图在按下时将 MIDI 音符编号打印到 Juce 音频应用程序中的标签中。这是我目前拥有的代码:
在MainComponent头文件中:
class MainComponent : public Component,
public MidiInputCallback
{
public:
//==============================================================================
MainComponent();
~MainComponent();
void resized() override;
void handleIncomingMidiMessage (MidiInput*, const MidiMessage&);
private:
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent)
AudioDeviceManager audioDeviceManager;
Label midiLabel;
};
Run Code Online (Sandbox Code Playgroud)
在 MainComponent.cpp 构造函数中:
MainComponent::MainComponent()
{
setSize (500, 400);
audioDeviceManager.setMidiInputEnabled("USB Axiom 49 Port 1", true);
audioDeviceManager.addMidiInputCallback (String::empty, this);
//midiLabel
midiLabel.setText("midiText", sendNotification);
addAndMakeVisible(midiLabel);
}
Run Code Online (Sandbox Code Playgroud)
最后在handleIncomingMidiMessage函数中:
void MainComponent::handleIncomingMidiMessage(MidiInput*, const MidiMessage&)
{
DBG("MIDI Message Recieved\n");
//display label text
String midiText;
MidiMessage message;
if (message.isNoteOnOrOff()) {
midiText << "NoteOn: Channel …Run Code Online (Sandbox Code Playgroud) 所以这是Visual Studio 2015 Update 1的一个后续问题,clang错误
我得到的错误信息是
clang.exe:错误:生成多个输出文件时无法指定-o
基本上,Hans Passant关于禁用预编译头文件的解决方法对我来说并不适用.我仍然看到错误.任何人都有更多的想法来解决这个问题?
我的VS生成的命令行是: -fpic -std=c++1y -fstack-protector -x c++ "Debug\" -Wall -fno-strict-aliasing -ffunction-sections -I "c:\SDKs\VST3 SDK" -I "c:\SDKs\vstsdk2.4" -I "....\JuceLibraryCode" -I "......\JUCE\modules" -g2 -gdwarf-2 -O0 -x c++-header -D "_CRT_SECURE_NO_WARNINGS" -D "WIN32" -D "_WINDOWS" -D "DEBUG" -D "_DEBUG" -D "JUCER_VS2010_78A501D=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -D "_WINDLL" -frtti -fomit-frame-pointer -fdata-sections -fno-ms-compatibility -std=c11 -fexceptions -o "Debug\" -fms-extensions -fno-short-enums
我正在尝试使用Clang在Windows中构建一个C++ JUCE音频插件,因为我最初在Mac上开发它时最终使用了大量的C++ 14功能并且没有意识到其他编译器在C++标准中稍微落后一点支持.JUCE应用程序通过VS/XCode项目文件或从Introjucer/Projucer应用程序生成的Makefile提供跨平台支持.如果我使用带有Clang 3.7项目模板的VS2015跨平台C++ DLL设置一个新项目,那么一切都很好.但是使用JUCE生成的VS项目文件然后切换项目首选项以使用Clang 3.7项目工具集是我遇到此错误的地方.
我需要开始构建一个使用JUCE库的Android应用程序.我正在阅读该网站,并试图解决问题.
我尝试在Ubuntu 11.04系统上安装JUCE,当我构建IntroJucer应用程序时,菜单无法正常工作(当我用鼠标点击但它们会消失时它们会闪烁).Android的JUCE应用程序可以在Mac OS X甚至Windows上构建吗?
如果您使用JUCE构建Android应用程序,请给我任何建议.