Qt – GroupBox – ComboBox – ListWidget – C++ – Linux

Publicado: 3 de outubro de 2014 em C/C++

ComboBox

Em computação, uma caixa de combinação é um elemento de interface gráfica. Um ComboBox permite ao usuário escolher uma das várias opções, pode ter duas formas muito diferentes. A forma padrão é a caixa de combinação não editável, que conta com um botão e uma lista suspensa de valores. A segunda forma, chamada de caixa de combinação editável, possui um campo de texto com um pequeno botão confinando-o. O usuário pode digitar um valor no campo de texto ou clique no botão para exibir uma lista drop-down.

Listwidget

Em computação, uma caixa de listagem é um elemento de interface gráfica. Uma ListBox apresenta ao usuário um grupo de itens, exibidos em uma ou mais colunas. As listas podem ter muitos itens, por isso eles são muitas vezes colocados em painéis de rolagem.

ComboBox - ListWidget - Programa

ComboBox – ListWidget – Programa

Qt Creator

Para criar um programa como este você precisa aprender alguns pequenos detalhes da interface gráfica e algumas das peculiaridades dos widgets do framework Qt, então siga os seguintes passos:

1 – Crie um novo projeto de Widgets. Arraste para o formulário um componente GroupBox e o redimensione para que caiba todos os outros componentes dentro dele. Você pode notar que o componente está sem as bordas, isto se deve ao fato de que os widgets do Qt são customizáveis e possuem a propriedade StyleSheet para que você possa declarar as modificações que deseja na aparência de cada componente. Abra a propriedade StyleSheet e na janela subsequente e coloque o código como na imagem abaixo:

Qt - StyleSheet

Qt – StyleSheet

Sobre Qt StyleSheets: http://qt-project.org/doc/qt-4.8/stylesheet.html

2 – Arraste para a tela 3 widgets Label, um ListWidget e um combobox, mude suas propriedades de texto e os alinhe conforme a figura abaixo:

Qt Creator - Design

Qt Creator – Design

3 –  Após terminar o design crie os Slots de duplo clique para o ListWidget e o de mudança de item para o ComboBox, utilize o código abaixo para completar o seu código gerado automaticamente, visto que utilizamos o construtor da classe para inicializar uma Array com os dados que utilizaremos para os componentes. Clique em Run para rodar o programa.

Para a versão deste programa C++ Windows MFC: clique aqui.

Exemplo:

Neste exemplo usamos um ComboBox e um ListBox para criar um programa C++ e utilizamos os slots para os eventos de cada Widget para interligar suas ações.

C++

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // Inicializa formulario

    // Cria Array
    QString  itens[] = { "Satisfaction", "Paint it Black", "Wild Horses", "Brown Sugar",
                         "Sympathy for the Devil", "Start Me Up" };

    // Alimenta ListBox e Combobox
    for (int i=0; i < 6; i++)
    {
        ui->listWidget->addItem(itens[i]);
        ui->comboBox->addItem(itens[i]);
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_listWidget_doubleClicked(const QModelIndex &index)
{
    // Alimenta texto e Sincroniza combo
    ui->label->setText("Rolling Stones: " + ui->listWidget->currentItem()->text());
    ui->comboBox->setCurrentIndex(ui->listWidget->currentIndex().row());
}

void MainWindow::on_comboBox_currentIndexChanged(const QString &arg1)
{
     // Alimenta texto e Sincroniza lista
     ui->label->setText("Rolling Stones: " + ui->comboBox->currentText());
     ui->listWidget->setCurrentRow(ui->comboBox->currentIndex());
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s