×
Namespaces

Variants
Actions
Revision as of 09:06, 5 March 2012 by hamishwillee (Talk | contribs)

Archived:Como usar um QStackedLayout

From Nokia Developer Wiki
Jump to: navigation, search

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

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.

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 05 Mar 2012

Contents

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

168 page views in the last 30 days.
×