GUI Editor Juce 6 - getting started

Could you please made tutorial like
but for Juce 6 version
because it is not same, also I follow these steps,
and get errors about declare

The offical JUCE tutorials are always kept up to date with the most recent version (AFAIK):

If you prefer video tutorials, check out The Audio Programmer:

I already watched it and read Juce tutorials, But I still cant make simple GUI with one button or image and compile it in Juce 6. Because I didnt found that tutorial in it.

I need description of every step how to do it in default Juce project.
I know it simple, but it is hard for me to start without these steps.

Can you share the code you’ve written so far? There really shouldn’t be any difference for something as simple as displaying a button on the screen.

One that comes to mind is that in JUCE 6 they added an option in the project settings of the Projucer to 'Add "using namespace juce" to JuceHeader.h' which, if set to disabled will mean you’ll need to write juce:: infront of any JUCE class names and a few other things.

I cant upload directly to forum.

As I said I follow that tutorial

That tutorial’s from 2016, JUCE 6 was released just a few weeks ago so of course it’s going to be outdated.

The errors you’re getting in the project are very self explanitory.
You’ve missed out a few juce::'s so VS can’t find some symbols - for example Image background; on line 32 of PluginEditor.h should be juce::Image background; since you have the using namespace juce option in the Projucer set to disabled.

Follow one of the official JUCE tutorials and you shouldn’t have any problems… and read your error messages!

I didnt found such tutorial in offical tutorials too. That why ask about it.

Can you share working project with one image on background? I will understand how to do it.

Or can you send me link to offical tutorial with background image, I can’t find it.

There’s not a tutorial for everything and so there’s no tutorial specifically about loading an image from binary data and rendering it.

Reading documentation is the next best thing to following tutorials and JUCE is one of the most well documented libraries you’ll find. Just search Google for “JUCE” + the thing you want to learn and it will probably point you to one of the class references or to a thread on this forum.

Loading an image from binary data with JUCE is super easy. First make sure you’ve drag-and-dropped the image you want to use into the “File explorer” panel of the Projucer and re-saved the project - this will generate the BinaryData.h file. Then to get the image in code:

void paint(juce::Graphics& g) override
    const auto image = juce::ImageCache::getFromMemory(BinaryData::img_png, BinaryData::img_pngSize);
    g.drawImage(image, getLocalBounds().toFloat());

Thank you, as beginner I dont understand all these references, thats why I need tutorials.
Also I’ve asked about GUI editor, it seems good addition, I like how it works, also
in Juce previous version it seems works so easy,

But You adviced another method, not GUI editor as I understand.

The GUI editor does still exist in the latest Projucer but it’s effectly deprecated.
You can enable it though Tools>GUI Editor Enabled in the Projucer menu bar. A new menu item called GUI Editor will appear.

I already enabled GUI editor and inserted image there. My projectGUI with it.

Also I’ve tried your code, but project not compiled.
Maybe I pasted it in wrong place.

Also I enable using namespace juce in projucer, but still not compiling.

When you added the image into projucer, make sure you save the project. In that process some files are generated containing the image in C++ usable code.
Some IDEs might need to reload the project, although afaik Xcode and the latest VS versions will pick up the changes automatically.

And img_png might be different in your case, it is effectlively the filename you added with the dot . turned into an underscore _

I’ve attached my project with one image and new code. But it is not compiling with new code too.

Are you new to C++ as well as JUCE?

I’m learning.

New GUI project
why super easy not compiling again?

I’ve created new project, pasted ```
void paint(juce::Graphics& g) override
const auto image = juce::ImageCache::getFromMemory(BinaryData::img_png, BinaryData::img_pngSize);
g.drawImage(image, getLocalBounds().toFloat());

Hi there

I just tried downloading and building one of the tutorials from scratch and I found, lo and behold, that it wouldn’t compile! The problem was that the juce header files in the JuceLibraryCode didn’t know where to find the juce modules folder (ie. the main bulk of the juce library, which isn’t downloaded with the tutorial).

To fix this, I opened the projucer file for the tutorial, then went to the Modules section. For each of the the modules, I went to the “Path for [your IDE]” option and updated it so that it points towards the main juce modules folder. (The text will turn from red to white when it has located the right folder, which is helpful). Then I saved the projucer project (different than saving files!), opened the solution in my IDE, and it worked fine.

I’m not sure if this is the same problem you’re having, but it’s worth a shot. I’m also wondering if it isn’t actually a problem with the tutorials after all. In the past, didn’t they compile out of the box?

I’ve set all my library paths to global path as always. And I compile tutorial projects without problems.

I’ve create my first project, it is not tutorial.
I know it is easy task. But I need some certain advise.

Also I’ve build VST2 and VST3 and standalone app with ASIO support. I’ve installed VS2017 about week ago. Before that I’m trying to build with Code:blocks. But there are too many mistakes.

Maybe obvious, but did you replace the placeholder filename binarydata::img_png with the actual filename of your image? An image file with the name myBackground.png will translate to BinaryData:::myBackground_png and BinaryData:::myBackground_pngSize

Otherwise, share your error messages with us. Learning to understand compiler errors is one of the most important parts when you get started with C++ :slightly_smiling_face:

I’ve replaced file names of course

That is my project, that I made by ImJimmi instruction, I already share it

I cant upload directly on forum, because it gives error, I’ve upload to dropmefiles.

void paint(juce::Graphics& g) override
    const auto image = juce::ImageCache::getFromMemory(BinaryData::img_png, BinaryData::img_pngSize);
    g.drawImage(image, getLocalBounds().toFloat());