Primeiras experiencias com QT
Novembro 7, 2008 às 12:05 pm | Publicado em Uncategorized | Deixe um comentárioIniciado o modulo 8, Conceitos avançados de programação, começamos a usar a parte gráfica da programação (GUI) e foi hora de começar a aprender QT, o framework escolhido para começar a desenvolver capacidades na construcao das interfaces gráficas. A linguagem utilizada é o C++ e o QT é uma framework/API baseada na filosofia open source que torna mais fácil a programação gráfica com uma potencialidade incrível.
Quem quiser saber mais sobre QT pode visitar o site: http://trolltech.com
Agora que a experiencia ja comecou, ja realizei um pequeno programa a sugestao do professor durante a aula, o qual vou partilhar de seguida:
/* Inclusao de todas as classes necessarias para o uso dos objectos */ #include <QApplication> #include <QLabel> #include <QVBoxLayout> #include <QHBoxLayout> #include <QWidget> #include <QSpacerItem> #include <QSpinBox> #include <QSlider> #include <QPushButton> int main(int argc, char *argv[]){ /* Todas as variaveis necessarias para a interface grafica(objectos) */ QApplication app(argc, argv); QWidget *janela = new QWidget; QLabel *dia1 = new QLabel("SEG"); QLabel *dia2 = new QLabel("TER"); QLabel *dia3 = new QLabel("QUA"); QLabel *dia4 = new QLabel("QUI"); QLabel *dia5 = new QLabel("SEX"); QLabel *dia6 = new QLabel("SAB"); QLabel *dia7 = new QLabel("DOM"); QSpinBox *sbdia1 = new QSpinBox; QSpinBox *sbdia2 = new QSpinBox; QSpinBox *sbdia3 = new QSpinBox; QSpinBox *sbdia4 = new QSpinBox; QSpinBox *sbdia5 = new QSpinBox; QSpinBox *sbdia6 = new QSpinBox; QSpinBox *sbdia7 = new QSpinBox; QSlider *sliderdia1 = new QSlider(Qt::Horizontal); QSlider *sliderdia2 = new QSlider(Qt::Horizontal); QSlider *sliderdia3 = new QSlider(Qt::Horizontal); QSlider *sliderdia4 = new QSlider(Qt::Horizontal); QSlider *sliderdia5 = new QSlider(Qt::Horizontal); QSlider *sliderdia6 = new QSlider(Qt::Horizontal); QSlider *sliderdia7 = new QSlider(Qt::Horizontal); QVBoxLayout *diasdasemana = new QVBoxLayout; QVBoxLayout *spinboxes = new QVBoxLayout; QVBoxLayout *sliders = new QVBoxLayout; QVBoxLayout *layout = new QVBoxLayout; QHBoxLayout *Hcontainer = new QHBoxLayout; QSpacerItem *spacer = new QSpacerItem(400, 0); QPushButton *botaoSair = new QPushButton("Sair"); /*Alteracao das propriedades das SpinBox e dos Sliders para que exista um limite minimo e maximo*/ sliderdia1->setRange(1,5); sbdia1->setRange(1, 5); sliderdia2->setRange(1,5); sbdia2->setRange(1, 5); sliderdia3->setRange(1,5); sbdia3->setRange(1, 5); sliderdia4->setRange(1,5); sbdia4->setRange(1, 5); sliderdia5->setRange(1,5); sbdia5->setRange(1, 5); sliderdia6->setRange(1,5); sbdia6->setRange(1, 5); sliderdia7->setRange(1,5); sbdia7->setRange(1, 5); /* Ligaçao entre as SpinBox e os sliders e vice-versa; Funcionalidade do botao sair*/ QObject:: connect(botaoSair, SIGNAL(clicked() ), &app, SLOT( quit() ) ); QObject:: connect(sliderdia1, SIGNAL(valueChanged(int) ), sbdia1, SLOT( setValue(int) ) ); QObject:: connect(sliderdia2, SIGNAL(valueChanged(int) ), sbdia2, SLOT( setValue(int) ) ); QObject:: connect(sliderdia3, SIGNAL(valueChanged(int) ), sbdia3, SLOT( setValue(int) ) ); QObject:: connect(sliderdia4, SIGNAL(valueChanged(int) ), sbdia4, SLOT( setValue(int) ) ); QObject:: connect(sliderdia5, SIGNAL(valueChanged(int) ), sbdia5, SLOT( setValue(int) ) ); QObject:: connect(sliderdia6, SIGNAL(valueChanged(int) ), sbdia6, SLOT( setValue(int) ) ); QObject:: connect(sliderdia7, SIGNAL(valueChanged(int) ), sbdia7, SLOT( setValue(int) ) ); QObject:: connect(sbdia1, SIGNAL(valueChanged(int) ), sliderdia1, SLOT( setValue(int) ) ); QObject:: connect(sbdia2, SIGNAL(valueChanged(int) ), sliderdia2, SLOT( setValue(int) ) ); QObject:: connect(sbdia3, SIGNAL(valueChanged(int) ), sliderdia3, SLOT( setValue(int) ) ); QObject:: connect(sbdia4, SIGNAL(valueChanged(int) ), sliderdia4, SLOT( setValue(int) ) ); QObject:: connect(sbdia5, SIGNAL(valueChanged(int) ), sliderdia5, SLOT( setValue(int) ) ); QObject:: connect(sbdia6, SIGNAL(valueChanged(int) ), sliderdia6, SLOT( setValue(int) ) ); QObject:: connect(sbdia7, SIGNAL(valueChanged(int) ), sliderdia7, SLOT( setValue(int) ) ); /*Organizacao da disposicao de todos os objectos na janela*/ diasdasemana->addWidget(dia1); diasdasemana->addWidget(dia2); diasdasemana->addWidget(dia3); diasdasemana->addWidget(dia4); diasdasemana->addWidget(dia5); diasdasemana->addWidget(dia6); diasdasemana->addWidget(dia7); spinboxes->addWidget(sbdia1); spinboxes->addWidget(sbdia2); spinboxes->addWidget(sbdia3); spinboxes->addWidget(sbdia4); spinboxes->addWidget(sbdia5); spinboxes->addWidget(sbdia6); spinboxes->addWidget(sbdia7); sliders->addWidget(sliderdia1); sliders->addWidget(sliderdia2); sliders->addWidget(sliderdia3); sliders->addWidget(sliderdia4); sliders->addWidget(sliderdia5); sliders->addWidget(sliderdia6); sliders->addWidget(sliderdia7); Hcontainer->addLayout(diasdasemana); Hcontainer->addLayout(spinboxes); Hcontainer->addLayout(sliders); layout->addLayout(Hcontainer); layout->addWidget(botaoSair); layout->addItem(spacer); /*Mostrar a janela final ( Widget ) */ janela->setLayout(layout); janela->setWindowTitle("Dias da Semana"); janela->show(); return app.exec(); }
Segue-se o screenshot da aplicacao em funcionamento:
Deixe um Comentário »
Create a free website or blog at WordPress.com.
Entries e comentários feeds.
Deixe um comentário