Publicado em Programação

QT – Exemplificação da utilização das classes QHBoxLayout e QVBoxLayout

Este widget muito simples permite classificar os dias da semana de 1 a 5 valores.

hvboxlayout

Para já ainda não faz a média mas lá chegaremos.

#include <QApplication>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QSpinBox>
#include <QSlider>
#include <QSpacerItem>
#include <QPushButton>

int main(int argc, char *argv[]){

    QApplication app(argc, argv);

    QWidget *janela = new QWidget;
    janela->setWindowTitle("Exemplo de Layout simples");

    //labels
    QLabel *texto1 = new QLabel("SEG");
    QLabel *texto2 = new QLabel("TER");
    QLabel *texto3 = new QLabel("QUA");
    QLabel *texto4 = new QLabel("QUI");
    QLabel *texto5 = new QLabel("SEX");
    QLabel *texto6 = new QLabel("SAB");
    QLabel *texto7 = new QLabel("DOM");

    //spinboxes
    QSpinBox *spin1 = new QSpinBox;
    QSpinBox *spin2 = new QSpinBox;
    QSpinBox *spin3 = new QSpinBox;
    QSpinBox *spin4 = new QSpinBox;
    QSpinBox *spin5 = new QSpinBox;
    QSpinBox *spin6 = new QSpinBox;
    QSpinBox *spin7 = new QSpinBox;
    spin1->setRange(1,5);
    spin2->setRange(1,5);
    spin3->setRange(1,5);
    spin4->setRange(1,5);
    spin5->setRange(1,5);
    spin6->setRange(1,5);
    spin7->setRange(1,5);

    //sliders
    QSlider *slider1 = new QSlider(Qt::Horizontal);
    QSlider *slider2 = new QSlider(Qt::Horizontal);
    QSlider *slider3 = new QSlider(Qt::Horizontal);
    QSlider *slider4 = new QSlider(Qt::Horizontal);
    QSlider *slider5 = new QSlider(Qt::Horizontal);
    QSlider *slider6 = new QSlider(Qt::Horizontal);
    QSlider *slider7 = new QSlider(Qt::Horizontal);
    slider1->setRange(1,5);
    slider2->setRange(1,5);
    slider3->setRange(1,5);
    slider4->setRange(1,5);
    slider5->setRange(1,5);
    slider6->setRange(1,5);
    slider7->setRange(1,5);

    //spacer
    QSpacerItem *spacer1 = new QSpacerItem(400,0);

    //button
    QPushButton *sair = new QPushButton("&Sair");

    //signals and slots
    QObject::connect ( sair, SIGNAL(clicked()), &app, SLOT(quit()));

    QObject::connect ( slider1, SIGNAL(valueChanged(int)), spin1, SLOT(setValue(int)));
    QObject::connect ( slider2, SIGNAL(valueChanged(int)), spin2, SLOT(setValue(int)));
    QObject::connect ( slider3, SIGNAL(valueChanged(int)), spin3, SLOT(setValue(int)));
    QObject::connect ( slider4, SIGNAL(valueChanged(int)), spin4, SLOT(setValue(int)));
    QObject::connect ( slider5, SIGNAL(valueChanged(int)), spin5, SLOT(setValue(int)));
    QObject::connect ( slider6, SIGNAL(valueChanged(int)), spin6, SLOT(setValue(int)));
    QObject::connect ( slider7, SIGNAL(valueChanged(int)), spin7, SLOT(setValue(int)));

    QObject::connect ( spin1, SIGNAL(valueChanged(int)), slider1, SLOT(setValue(int)));
    QObject::connect ( spin2, SIGNAL(valueChanged(int)), slider2, SLOT(setValue(int)));
    QObject::connect ( spin3, SIGNAL(valueChanged(int)), slider3, SLOT(setValue(int)));
    QObject::connect ( spin4, SIGNAL(valueChanged(int)), slider4, SLOT(setValue(int)));
    QObject::connect ( spin5, SIGNAL(valueChanged(int)), slider5, SLOT(setValue(int)));
    QObject::connect ( spin6, SIGNAL(valueChanged(int)), slider6, SLOT(setValue(int)));
    QObject::connect ( spin7, SIGNAL(valueChanged(int)), slider7, SLOT(setValue(int)));

    //layouts
    QVBoxLayout *layout1 = new QVBoxLayout;
    layout1->addWidget(texto1);
    layout1->addWidget(texto2);
    layout1->addWidget(texto3);
    layout1->addWidget(texto4);
    layout1->addWidget(texto5);
    layout1->addWidget(texto6);
    layout1->addWidget(texto7);

    QVBoxLayout *layout2 = new QVBoxLayout;
    layout2->addWidget(spin1);
    layout2->addWidget(spin2);
    layout2->addWidget(spin3);
    layout2->addWidget(spin4);
    layout2->addWidget(spin5);
    layout2->addWidget(spin6);
    layout2->addWidget(spin7);

    QVBoxLayout *layout3 = new QVBoxLayout;
    layout3->addWidget(slider1);
    layout3->addWidget(slider2);
    layout3->addWidget(slider3);
    layout3->addWidget(slider4);
    layout3->addWidget(slider5);
    layout3->addWidget(slider6);
    layout3->addWidget(slider7);    

    QHBoxLayout *layout4 = new QHBoxLayout;
    layout4->addLayout(layout1);
    layout4->addLayout(layout2);
    layout4->addLayout(layout3);

    QVBoxLayout *layout5 = new QVBoxLayout;
    layout5->addLayout(layout4);
    layout5->addWidget(sair);
    layout5->addItem(spacer1);

    janela->setLayout(layout5);

    janela->show();
    return app.exec();
}
Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s