×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Como usar um QStackedLayout

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update of Template:ArticleMetaData)
hamishwillee (Talk | contribs)
m (Hamishwillee - Addition to article of: Category:MeeGo Category:Symbian. (Add platform categories))
Line 145: Line 145:
  
 
[[Image:stacked2.jpg]]
 
[[Image:stacked2.jpg]]
<!-- Translation --> [[en:How to use QStackedLayout in Qt]]
+
<!-- Translation --> [[en:How to use QStackedLayout in Qt]][[Category:MeeGo]] [[Category:Symbian]]

Revision as of 09:47, 15 February 2012


Article Metadata

Testado com
Aparelho(s): Emulator

Compatibilidade
Plataforma(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
Symbian

Artigo
Palavras-chave: QStackedLayout
Tradução:
Por valderind4
Última alteração feita por hamishwillee em 15 Feb 2012


Introdução

Este trecho de código, demonstra como utilizar o stacked layout em Qt para Symbian. A classe QStackedLayout provêr uma pilha de widgets, onde apenas um widget é visível por vez.

Pré-requisitos

  • Baixe e instale a versão atual do Qt para Symbian segundo as instruções deste artigo.

Funcionalidades

  • Esta propriedade, determina o modo de visibilidade dos widgets filho que são manipulados.
stackedLayout->setStackingMode(QStackedLayout::StackAll);

Laayout.PNG

Código fonte

#include "stacked.h"
 
stacked::stacked(QWidget *parent)
: QWidget(parent)
{
firstPageWidget = new QWidget(this);
secondPageWidget = new QWidget(this);
thirdPageWidget = new QWidget(this);
label1 = new QLabel("page1",this);
label2 = new QLabel("page2",this);
label3 = new QLabel("page3",this);
Layout1 = new QVBoxLayout(this);
Layout2 = new QVBoxLayout(this);
Layout3 = new QVBoxLayout(this);
Layout1->addWidget(label1);
Layout2->addWidget(label2);
Layout3->addWidget(label3);
firstPageWidget ->setLayout(Layout1);
secondPageWidget ->setLayout(Layout2);
thirdPageWidget ->setLayout(Layout3);
stackedLayout = new QStackedLayout;
stackedLayout->addWidget(firstPageWidget);
stackedLayout->addWidget(secondPageWidget);
stackedLayout->addWidget(thirdPageWidget);
 
mainLayout = new QVBoxLayout;
pageComboBox = new QComboBox;
pageComboBox->addItem(tr("Page 1"));
pageComboBox->addItem(tr("Page 2"));
pageComboBox->addItem(tr("Page 3"));
connect(pageComboBox, SIGNAL(activated(int)),stackedLayout, SLOT(setCurrentIndex(int)));
mainLayout->addWidget(pageComboBox);
mainLayout->addLayout(stackedLayout);
setLayout(mainLayout);
 
}
 
stacked::~stacked()
{
// No need to delete any object that has a parent which is properly deleted.
 
}

Cabeçalho do arquivo

#ifndef STACKED_H
#define STACKED_H
#include <QLabel>
#include <QtGui/QWidget>
#include "ui_stacked.h"
#include <QVBoxLayout>
#include <QStackedLayout>
#include <QComboBox>
class stacked : public QWidget
{
Q_OBJECT
 
public:
stacked(QWidget *parent = 0);
~stacked();
 
private:
QLabel* label1;
QLabel* label2;
QLabel* label3;
QWidget* firstPageWidget;
QWidget* secondPageWidget;
QWidget* thirdPageWidget;
QComboBox* pageComboBox;
QStackedLayout* stackedLayout;
QVBoxLayout* mainLayout;
QVBoxLayout* Layout1;
QVBoxLayout* Layout2;
QVBoxLayout* Layout3;
 
};
 
#endif // STACKED_H

Descrição

  • Neste exemplo, três janelas são criados e são organizadas na pilha. Muto embora, apenas uma janela por vez, é visível. Uma combobox é usada para controlar a tela. Através da mudança no combobox, a janela visível pode ser mudada.

Captura de tela

Stacked1.jpg

Stacked2.jpg

200 page views in the last 30 days.