StackLayout
Since: BlackBerry 10.0.0
#include <bb/cascades/StackLayout>
A layout that is used to position a container's children in a stack.
The stack can be either vertical or horizontal, depending on the orientation. The default orientation is LayoutOrientation::TopToBottom. The StackLayoutProperties class contains additional layout properties that you can set on the individual children within the Container.
By using the Control::horizontalAlignment and Control::verticalAlignment properties you can specify where controls are positioned horizontally (left, center, or right) and vertically (top, center, bottom) within the containers area in the StackLayout. Controls can also be expanded/contracted to fill the container in a specified direction.
In cases where children must not extend outside a container's borders, the padding property can be used to create some separation between the boundary of the container and its child controls. Each boundary of a container (left, right, top and bottom) can have a different value set on it.
For example, setting the left padding to 10 would mean that the left-most 10 pixels of the layout container will not be available to the child controls.
In the following examples, a StackLayout is used to position some buttons in a vertical stack, centered on the screen.

QML:
Container { layout: StackLayout {} Button { text: "Button1" layoutProperties: StackLayoutProperties {} horizontalAlignment: HorizontalAlignment.Center } Button { text: "Button2" layoutProperties: StackLayoutProperties {} horizontalAlignment: HorizontalAlignment.Center } Button { text: "Button3" layoutProperties: StackLayoutProperties {} horizontalAlignment: HorizontalAlignment.Center } }
C++:
Container* pContainer = new Container(); StackLayout *pStackLayout = new StackLayout(); pStackLayout->setOrientation( LayoutOrientation::TopToBottom ); pContainer->setLayout(pStackLayout); Button* pButton1 = Button::create().text("Button1"); Button* pButton2 = Button::create().text("Button2"); Button* pButton3 = Button::create().text("Button3"); pButton1->setLayoutProperties( StackLayoutProperties::create() .horizontal( HorizontalAlignment::Center ) ); pButton2->setLayoutProperties( StackLayoutProperties::create() .horizontal( HorizontalAlignment::Center ) ); pButton3->setLayoutProperties( StackLayoutProperties::create() .horizontal( HorizontalAlignment::Center ) ); pContainer->add( pButton1 ); pContainer->add( pButton2 ); pContainer->add( pButton3 );
Overview
Inheritance
bb::cascades::BaseObject | ||||
bb::cascades::UIObject | ||||
bb::cascades::Layout | ||||
bb::cascades::StackLayout |
QML properties
orientation | : bb::cascades::LayoutOrientation::Type |
attachedObjects | : QDeclarativeListProperty< QObject > [read-only]![]() |
objectName | : QString![]() |
parent | : QObject [read-only]![]() |
ui | : bb::cascades::UIConfig [read-only]![]() |
QML signals
Properties Index
bb::cascades::LayoutOrientation::Type | orientation |
QDeclarativeListProperty< QObject > | attachedObjects [read-only]![]() |
QString | objectName![]() |
QObject | parent [read-only]![]() |
bb::cascades::UIConfig | ui [read-only]![]() |
Public Functions Index
StackLayout () | |
virtual | ~StackLayout () |
bb::cascades::LayoutOrientation::Type | orientation () const |
Q_SLOT void | resetOrientation () |
Q_SLOT void | setOrientation (bb::cascades::LayoutOrientation::Type orientation) |
virtual bool | event (QEvent *event)![]() |
void | setObjectName (const QString &name)![]() |
virtual Q_INVOKABLE QString | toDebugString () const ![]() |
Q_INVOKABLE bb::cascades::UIConfig * | ui () const ![]() |
Static Public Functions Index
Builder | create () |
Protected Functions Index
Only has inherited protected functions
BaseObject (QObject *parent=0)![]() | |
virtual void | connectNotify (const char *signal)![]() |
virtual void | disconnectNotify (const char *signal)![]() |
Signals Index
void | orientationChanged (bb::cascades::LayoutOrientation::Type newOrientation) |
void | creationCompleted ()![]() |
void | objectNameChanged (const QString &objectName)![]() |
Properties
bb::cascades::LayoutOrientation::Type
The orientation for the stack layout.
QDeclarativeListProperty< QObject >
A hierarchical list of the UIObject's attached objects.
BlackBerry 10.0.0
QString
This property is overridden from QObject.
QObject::objectName().
BlackBerry 10.0.0
QObject
A read-only property that represents this object's parent.
The parent of an object is specified using QObject::setParent(QObject*). The purpose of the property is to expose the object's parent to QML.
This property is read-only to prevent modifications from QML, where typically the parent is declaratively set. In C++ code, the parent can be explicitly set using QObject::setParent(QObject*), or implicitly set by adding it to a visual container.
The default value of this property is 0.
BlackBerry 10.0.0
bb::cascades::UIConfig
An object that gives access to unit conversion routines.
// Size using design units Container { preferredWidth: ui.du(12) preferredHeight: ui.du(5) } // Size using design units, snap to whole pixels Container { preferredWidth: ui.sdu(13.5) preferredHeight: ui.sdu(7.5) } // Size using absolute pixel values Container { preferredWidth: ui.px(150) preferredHeight: ui.px(50) }C++ use:
Container *container1 = Container::create().background(Color::Red); UIConfig *ui = container1->ui(); container1->setPreferredWidth(ui->du(12)); container1->setPreferredHeight(ui->du(5)); Container *container2 = Container::create().background(Color::Green); container2->setPreferredWidth(ui->sdu(13.5)); container2->setPreferredHeight(ui->sdu(7.5)); Container *container3 = Container::create().background(Color::Blue); container3->setPreferredWidth(ui->px(150)); container3->setPreferredHeight(ui->sdu(50));
Blackberry 10.3.0
Public Functions
Constructs a StackLayout object.
When you set a layout on a container using Container::setLayout the container assumes ownership of this instance.
BlackBerry 10.0.0
virtual
Destructor.
bb::cascades::LayoutOrientation::Type
Returns the orientation for the stack layout.
The orientation.
BlackBerry 10.0.0
Q_SLOT void
Resets the orientation to its default.
The default orientation is LayoutOrientation::TopToBottom.
After the orientation is reset, the orientationChanged() signal is emitted.
BlackBerry 10.0.0
Q_SLOT void
Sets the orientation for the stack layout.
After the orientation is set, the orientationChanged() signal is emitted.
Parameters | |
---|---|
orientation |
The new orientation. |
BlackBerry 10.0.0
virtual bool 
Overloaded to implement the event mechanism in Cascades.
If this function is overridden, it must be called by the derived class for events to work properly in Cascades.
Parameters | |
---|---|
event |
The received event. |
True if the received event was recognized and processed, false otherwise.
BlackBerry 10.0.0
void 
Sets the objectName property.
Parameters | |
---|---|
name |
The new name for the object. |
BlackBerry 10.0.0
virtual Q_INVOKABLE QString 
Returns a debug string representing this object.
A debug string for the object.
BlackBerry 10.0.0
Q_INVOKABLE bb::cascades::UIConfig * 
Returns the UIConfig for this ui object.
The UIConfig can be used to perform unit conversions from design units (du) and snapped design units (sdu) to pixels.
Ownership remains with Cascades.
Container *container1 = Container::create().background(Color::Red); UIConfig *ui = container1->ui(); container1->setPreferredWidth(ui->du(12)); container1->setPreferredHeight(ui->du(5)); Container *container2 = Container::create().background(Color::Green); container2->setPreferredWidth(ui->sdu(13.5)); container2->setPreferredHeight(ui->sdu(7.5)); Container *container3 = Container::create().background(Color::Blue); container3->setPreferredWidth(ui->px(150)); container3->setPreferredHeight(ui->sdu(50));
The UIConfig for this ui object.
BlackBerry 10.3.0
Static Public Functions
Builder
Creates and returns a builder for constructing a stack layout.
StackLayout* stackLayout = StackLayout::create() .orientation(LayoutOrientation::LeftToRight);
A builder used for constructing a stack layout.
BlackBerry 10.0.0
Protected Functions
(Only has inherited protected functions)
Constructs an instance of BaseObject's subclass.
Parameters | |
---|---|
parent |
An optional parent, defaults to 0. |
BlackBerry 10.0.0
virtual void 
Overloaded to implement the event mechanism in Cascades.
If this function is overridden, it must be called by the derived class for events to work properly in Cascades.
Parameters | |
---|---|
signal |
The connected signal. |
BlackBerry 10.0.0
virtual void 
Overloaded to implement the event mechanism in Cascades.
If this function is overridden, it must be called by the derived class for events to work properly in Cascades.
Parameters | |
---|---|
signal |
The disconnected signal. |
BlackBerry 10.0.0
Signals
void
Emitted when the orientation property changes.
Due to a work around for a Qt Core issue with accessing enums from QML the argument of this signal doesn't follow naming convention for signals in which the signal arguments are typically named to match the associated property's name. Use the object's property to access current property value instead of the signal argument to avoid runtime errors (i.e. use orientation instead of newOrientation).
Parameters | |
---|---|
newOrientation |
The new orientation. |
BlackBerry 10.0.0
void 
Emitted when this object is instantiated as a result of loading a QML document and creating the root node (only after the root component that caused this instantiation has completed construction), or when the object is being constructed from its builder class.
This signal indicates that the construction and initialization of the object has been completed, the properties are initialized, and any QML binding values have been assigned to the object.
This signal is not emitted when the object is constructed from C++ using the constructor. If the object is constructed using its builder class, the signal is emitted when the the builder class returns the fully constructed object.
This signal can be used when there is an activity that needs to be performed, such as a property state integrity verification after the object is instantiated from a QML document or a builder, but before control is returned to the application.
BlackBerry 10.0.0
void 
This signal is emitted when the objectName property is changed.
BlackBerry 10.0.0