Gêneros favoritos de filme, série e/ou livro do usuário com CheckBox
Para essa aplicação é necessário saber um pouco sobre CheckBox.
CheckBox (caixa de seleção) é um controle que torna uma instrução verdadeira ou falsa, assim é um botão que pode ser ativado ou desativado. Para realizar essa validação, esse controle exibe uma pequena caixa quadrada na qual o usuário pode clicar. No começo, a caixa quadrada está vazia *. Se o usuário clicar nele, uma marca de seleção aparecerá na caixa quadrada.
Neste tutorial veremos como responder perguntas utilizando a caixa de seleção.
Na parte de design vamos utilizar seis CheckBox, um Label e um PushButton.
No Label devemos digitar a pergunta “Quais gêneros de filmes, séries e/ou livros você prefere?”
Nos CheckBox vamos digitar: “Romance”, “Terror”, “Comédia”, “Ação”, “Suspense” e “Outros”.
Essa mudança de texto pode ser feita dando um clique duplo sobre o elemento ou modificando na tabela de propriedades localizada no canto inferior direito (propriedades -> QLabel -> text).
Após a modificação deve ficar assim:
Devemos adicionar função ao botão;
Para adicionar funcionalidade ao botão deve-se selecionar a função Clicked (que é ativada ao clicar do lado direito do mouse);
Depois indo até Go to slot…;
Selecionando Clicked e pressionando Ok.
Após acionarmos o Clicked do PushButton seremos direcionados ao mainwindow.cpp, local que vamos programar.
Para iniciar a programação dessa aplicação vamos incluir a biblioteca QMessageBox;
A Classe QMessageBox é utilizada para informar o usuário ou para fazer uma pergunta ao usuário e receber uma resposta;
Também utilizaremos QString para exibir mensagens na execução;
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QMessageBox>
QString msg="";
Após isso, vamos programar dentro da void MainWindow::on_pushButton_clicked() { };
1° Vamos usar bool, assim o booleano irá retornar true ou false para as caixas selecionadas e nomear as seis CheckBox;
void MainWindow::on_pushButton_clicked()
{
bool box1, box2, box3, box4, box5, box6;
}
2° Vamos usar as seis CheckBox com isChecked para checar se estão selecionadas;
void MainWindow::on_pushButton_clicked()
{
bool box1, box2, box3, box4, box5, box6;
box1=ui->checkBox->isChecked();
box2=ui->checkBox_2->isChecked();
box3=ui->checkBox_3->isChecked();
box4=ui->checkBox_4->isChecked();
box5=ui->checkBox_5->isChecked();
box6=ui->checkBox_6->isChecked();
}
3° Vamos usar if com a mensagem que deverá ser exibida ao selecionar as caixas, nesse caso o nome dos gêneros;
void MainWindow::on_pushButton_clicked()
{
bool box1, box2, box3, box4, box5, box6;
box1=ui->checkBox->isChecked();
box2=ui->checkBox_2->isChecked();
box3=ui->checkBox_3->isChecked();
box4=ui->checkBox_4->isChecked();
box5=ui->checkBox_5->isChecked();
box6=ui->checkBox_6->isChecked();
msg=" ";
if(box1){
msg+="ROMANCE"; }
if(box2){
msg+="TERROR";}
if(box3){
msg+="COMÉDIA";}
if(box4){
msg+="AÇÃO";}
if(box5){
msg+="SUSPENSE";}
if(box6){
msg+="OUTROS";}
}
4° Vamos adicionar QMessageBox;
void MainWindow::on_pushButton_clicked()
{
bool box1, box2, box3, box4, box5, box6;
box1=ui->checkBox->isChecked();
box2=ui->checkBox_2->isChecked();
box3=ui->checkBox_3->isChecked();
box4=ui->checkBox_4->isChecked();
box5=ui->checkBox_5->isChecked();
box6=ui->checkBox_6->isChecked();
msg="";
if(box1){
msg+="ROMANCE"; }
if(box2){
msg+="TERROR";}
if(box3){
msg+="COMÉDIA";}
if(box4){
msg+="AÇÃO";}
if(box5){
msg+="SUSPENSE";}
if(box6){
msg+="OUTROS";}
QMessageBox:: information(this, "GENEROS PREFERIDO", msg);
}
Ao executar o código, a tela final deverá exibir o que for selecionado.
O mainwindow.cpp completo ficará assim:
mainwindow.cpp
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <Q MessageBox>
QString msg="";
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
bool box1, box2, box3, box4, box5, box6;
box1=ui->checkBox->isChecked();
box2=ui->checkBox_2->isChecked();
box3=ui->checkBox_3->isChecked();
box4=ui->checkBox_4->isChecked();
box5=ui->checkBox_5->isChecked();
box6=ui->checkBox_6->isChecked();
msg="";
if(box1){
msg+="ROMANCE"; }
if(box2){
msg+="TERROR";}
if(box3){
msg+="COMÉDIA";}
if(box4){
msg+="AÇÃO";}
if(box5){
msg+="SUSPENSE";}
if(box6){
msg+="OUTROS";} generos
QMessageBox:: information(this, "GENEROS PREFERIDO", msg);
}