チュートリアルメイン・コンポーネント
このチュートリアルでは、メイン・コンテンツ・コンポーネントを作成することによって、アプリケーション・ウィンドウにグラフィカル・コンテンツを追加する方法を説明します。これは、ウィンドウ内でユーザーにコンテンツを表示するために重要です。
レベル初心者
プラットフォーム:Windows, macOS, Linux
クラス: DocumentWindow,Component,Graphics
スタート
Projucerを起動し、次の名前で新しいGUIアプリケーション・プロジェクトを作成します。メインコンポーネントチュートリアル.での自動生成するファイル:フィールドでMain.cppファイルのみを作成する.
このステップでヘルプが必要な場合は、以下を参照してく ださい。Tutorial: Projucer Part 1: Getting started with the Projucer.
を変更する。MainComponentTutorialApplication
クラスには以下が含まれる。MainWindow
クラスを以下のように変更した:
//==============================================================================
class MainComponentTutorialApplication : public juce::JUCEApplication
{
public:
//...
//==============================================================================
class MainWindow : public juce::DocumentWindow
{
public:
MainWindow (juce::String name) : DocumentWindow (name,
juce::Colours::lightgrey,
DocumentWindow::allButtons)
{
setUsingNativeTitleBar (true);
centreWithSize (300, 200);
setVisible (true);
}
void closeButtonPressed() override
{
JUCEApplication::getInstance()->systemRequestedQuit();
}
private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow)
};
private:
std::unique_ptr mainWindow;
};
DocumentWindowA resizable window with a title bar and maximise, minimise and close buttons.Definition juce_DocumentWindow.h:67
JUCEApplication::getInstancestatic JUCEApplication *JUCE_CALLTYPE getInstance() noexceptReturns the global instance of the application object being run.
JUCEApplication::systemRequestedQuitvoid systemRequestedQuit() overrideCalled when the operating system is trying to close the application.
nameint UnityEventModifiers const char * nameDefinition juce_UnityPluginInterface.h:204
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...Definition juce_PlatformDefs.h:262
ColoursContains a set of predefined named colours (mostly standard HTML colours)Definition juce_Colours.h:46
juceDefinition juce_AudioWorkgroup_mac.h:36
以下の行をinitialise()
関数である:
void initialise (const juce::String& commandLine) override
{
mainWindow.reset (new MainWindow (getApplicationName()));
}
最後に、以下の行をshutdown()
関数である:
void shutdown() override
{
mainWindow = nullptr;
}
はじめに
前回のチュートリアル(Tutorial: The application window)では、アプリケーションのグラフィカル・インターフェースのフレームとなるメイン・ウィンドウについて説明しました。このチュートリアルではメインコンテンツコンポーネントを示すオブジェクトである。内容アプリのインターフェイスのメインコンテンツコンポーネントは、すべてのJUCEアプリに不可欠なオブジェクトです。
新しいGUIアプリケーションをThe ProjucerJUCEアプリのメインコンテンツコンポーネントが自動的に生成されます。しかし、この概念に慣れ、JUCEアプリがどのように構成されているかを理解する良い方法は、このようなメインコンテンツコンポーネントを自分で作成することです。これが、このチュートリアルで行うことです。
IDEでチュートリアル・プロジェクトを開いてください。前回のチュートリアルと同じところ、つまり空のアプリケーション・ウィンドウから始めます。つまり、空のアプリケーション・ウィンドウです。Main.cpp
ファイルではMainWindow
クラスを使用します。その使い方は前回のチュートリアルですでに学んだ(Tutorial: The application window).では、このウィンドウをコンテンツで埋めましょう!
しかし、その前に、まずはコンポーネントもう少し先だ。
コンポーネント・クラス
全てのJUCEグラフィカル・インターフェースの最も重要な基本クラスはComponentクラスを使用します。JUCEでは、ボタンであれ、スライダーであれ、テキスト・フィールドであれ、GUIの実質的に目に見える要素はすべてコンポーネントこのクラスから派生したものです。JUCEでこのようなアプリを書く方法は主成分これはメイン・アプリケーション・ウィンドウが所有し、ウィンドウの内容.他のすべてのコンポーネントは子供たちこの主要コンポーネントのTutorial: Parent and child components).そのDocumentWindowクラスがある。MainWindow
を派生させたもので、メインウィンドウがそのコンテンツ(メインコンポーネントとその子コンポーネントを含む)を正しく表示するために必要な機能を含んでいます。
覚えておいてください:JUCEのすべてのグラフィカル要素はComponentクラスで構成される。GUIを構築するには、さまざまなコンポーネントを親そして子供コンポーネントで構成される。一番上のコンポーネントはメインコンテンツコンポーネント.参照Tutorial: Parent and child componentsを参照されたい。
メイン・コンポーネント・クラスの追加
新しいソースファイルの作成
では、メイン・コンポーネント・クラスを作りましょう。そのためには、このクラスのソース・コードを格納する新しいファイルを作成する必要があります。に戻りましょう。The Projucerでチュートリアル・プロジェクトを開きます。左側のファイルブラウザを開く。次にソースグループ(新しいC++ソース・ファイルが常に置かれるべきファイル・グループ)を選択し新しいコンポーネントクラスを追加(CPPとヘッダーに分割)....The Projucerは、新しいComponentサブクラスのサブクラスを作成します。ダイアログでメインコンポーネントをクリックしファイル作成.次のことがわかるだろう。The Projucerは2つの新しいファイルを作成した:MainComponent.cpp
そしてMainComponent.h
.ここで、プロジェクトを保存し、あなたのIDE.新しいファイルもそこに表示されるはずだ。The Projucerは新しいコンポーネント・クラスのコードを自動的に作成した。