A classe QComboBox permite a criação de controles conhecidos como ComboBox ou caixa de combinação, por combinar um botão e uma lista pop-up. Este controle é muito usado quando precisamos apresentar ao usuário uma lista de opções sem ocupar muito espaço na tela da aplicação.
O trecho de código abaixo mostra como inserir um controle QComboBox em uma janela diálogo. Ao clicar no botão, uma mensagem contendo o texto do item selecionado no QComboBox será exibida. Comece analisando o código para a definição da classe Dialogo (dialogo.h):
#ifndef DIALOGO_H
#define DIALOGO_H
#include <QDialog>
class QPushButton;
class QComboBox;
class Dialogo : public QDialog
{
Q_OBJECT
public:
Dialogo(QWidget *parent = 0);
private:
// referência a um QPushButton
QPushButton *btnOK;
// referência a um QComboBox
QComboBox *cbItens;
private slots:
// slot para o evento click do botão
void btnOKClicked();
};
#endif
O mais importante a considerar aqui é a declaração de uma referência a um QComboBox:
Veja agora o código para a implementação da classe Dialogo (dialogo.cpp):
#include <QtGui>
#include "dialogo.h"
Dialogo::Dialogo(QWidget *parent)
: QDialog(parent)
{
// cria o QComboBox
cbItens = new QComboBox();
// define a largura e altura do combobox
cbItens->setMinimumSize(120, 22);
// insere três itens no combobox
cbItens->addItem("Goiânia", 0);
cbItens->addItem("Curitiba", 0);
cbItens->addItem("Cuiabá", 0);
// cria o QPushButton
btnOK = new QPushButton(tr("&Ok"));
btnOK->setDefault(true);
btnOK->setMinimumSize(50, 24);
// conecta o botão ao slot btnOKClicked()
connect(btnOK, SIGNAL(clicked()),
this, SLOT(btnOKClicked()));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(cbItens);
layout->addWidget(btnOK);
layout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
setLayout(layout);
setWindowTitle(tr("Estudos Qt"));
resize(300, 150);
}
void Dialogo::btnOKClicked()
{
// vamos obter o texto do item selecionado
// no combobox
QString item = cbItens->itemText(
cbItens->currentIndex());
// exibe uma mensagem
QMessageBox::information(this,
"Mensagem",
tr("O ítem selecionado é: %1").arg(item));
}
Observe as linhas que criam o QComboBox e adicionam três itens no controle:
// cria o QComboBox
cbItens = new QComboBox();
// define a largura e altura do combobox
cbItens->setMinimumSize(120, 22);
// insere três itens no combobox
cbItens->addItem("Goiânia", 0);
cbItens->addItem("Curitiba", 0);
cbItens->addItem("Cuiabá", 0);
Para finalizar, analise o trecho de código que obtém o texto do item selecionado:
// vamos obter o texto do item selecionado
// no combobox
QString item = cbItens->itemText(
cbItens->currentIndex());
// exibe uma mensagem
QMessageBox::information(this,
"Mensagem",
tr("O ítem selecionado é: %1").arg(item));
|