Skip to main content

Container

A Container is a component in TouchGFX that can contain child nodes.

To read more about the fundamental nature of the concept of Containers, read the Widgets and Containers page.

It is also possible to generate a Container as a CachableContainer. A CacheableContainer can render its content to a dynamic bitmap. This is explained more in detail on the Achieving Better Performance with CacheableContainer page.

Container widget running in the simulator

Widget Group

The Container can be found in the Containers widget group in TouchGFX Designer.

Container widget in TouchGFX Designer

Properties

The properties for a Container in TouchGFX Designer.

Property GroupProperty Descriptions
NameName of the widget. Name is the unique identifier used in TouchGFX Designer and code.
LocationX and Y specify the top left corner of the widget relative to its parent.

W and H specify the width and height of the widget.

Lock specifies if the widget should be locked in its current X, Y, W and H.
Locking the widget also disables interacting with the widget through the screen.

Visible specifies the visibility of the widget. Making the widget invisible also disables interacting with the widget through the screen.
CachingCachable specifies if the Container should be generated as a CachableContainer.
MixinsDraggable specifies if the widget is draggable at runtime.

ClickListener specifies if the widget emits a callback when clicked.

FadeAnimator specifies if the widget can animate changes to its Alpha value.

MoveAnimator specifies if the widget can animate changes to X and Y values.

Interactions

The actions and triggers supported by a Container in TouchGFX Designer.

Actions

Widget specific actionDescription
Resize widgetResize the width and height of a widget.
Standard widget actionDescription
Move widgetMove a widget to a new position over time.
Hide widgetHides a widget (sets visibility to false).
Show widgetMake a hidden widget visible (sets visibility to true).

Triggers

A Container does not emit any triggers.

Performance

A Container itself does not have any impact on performance and is entirely dependent on its children. Therefore, the Container is considered a very fast widget on most platforms.

In certain cases, using a CachableContainer to cache UI elements in a dynamic bitmap can significantly improve performance throughout an application. This is explained more in detail in the Achieving Better Performance with CacheableContainer article.

For more general details on drawing performance, read the General UI Component Performance section.

Examples

Generated Code

In the generated code for the View base class we can see how TouchGFX Designer sets up a Container.

Screen1ViewBase.cpp
#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include "BitmapDatabase.hpp"

Screen1ViewBase::Screen1ViewBase()
{
container1.setPosition(67, 11, 347, 250);

image1.setXY(109, 61);
image1.setBitmap(touchgfx::Bitmap(BITMAP_BLUE_LOGO_TOUCHGFX_LOGO_ID));
container1.add(image1);

add(container1);
}
Tip
You can use these functions and the others available in the Container class in user code. Remember to force a redraw by calling container1.invalidate() orcontainer1.invalidateContent() if you change the appearance of the widget. When using container1.invalidateContent(), you must callcontainer1.invalidateContent() before and after you change the appearance of the widget. Note: container1.invalidateContent()will call invalidateContent() on all children of the container.

API Reference