Qual iniciante não ficou reclamando: “mais eu não quero esse contador estupido aqui, quero colocar o ID do meu cadasto” ^_^´
Bem, para ajudar um amigo da lista php-gtk brasil, eu escrevi um código simples e facil de entender, onde eu utilizo um model, e coloco o valor que eu quero la dentro. Simples não?
Bem, ai vai um código explicadinho:
set_size_request(250, 100);
$fix = new GtkFixed();
// Cria o combo
$campos['idFornecedor'] = new GtkComboBox();
$campos['midFornecedor'] = new GtkListStore(Gobject::TYPE_STRING, Gobject::TYPE_PHP_VALUE);
$campos['idFornecedor']->set_size_request(200, 23);
// Cria o conteudo do combo
$render = new GtkCellRendererText();
$campos['idFornecedor']->set_model($campos['midFornecedor']);
$campos['idFornecedor']->pack_start($render);
$campos['idFornecedor']->set_attributes($render,'text',0);
// Cria o botao
$campos['btnAdd'] = new GtkButton('Add');
// Adiciona os campos
$fix->put($campos['idFornecedor'], 8, 8);
$fix->put($campos['btnAdd'], 8, 36);
// Conecta os sinais
$window->connect_simple('destroy', array('Gtk', 'main_quit'));
$campos['btnAdd']->connect_simple('clicked', 'onclick');
$campos['idFornecedor']->connect_simple('changed', 'onchange');
// Mostra tudo e inicia a aplicação
$window->add($fix);
$window->show_all();
gtk::main();
// Ao clicar no botão
function onclick()
{
global $campos;
// Gera um ID random
$id = rand(50, 200);
$nome = $id . "° fornecedor";
// Adiciona o fornecedor no combobox
$campos['midFornecedor']->append(
array($nome, $id)
);
}
// Ao selecionar um valor no combobox
function onchange()
{
global $campos;
// Busca o valor selecionado
$Iter = $campos['idFornecedor']->get_active_iter();
printf("%s\n", $campos['midFornecedor']->get_value($Iter, 1));
}
Bem, a idéia é criar um model, e coloca-lo no combobox, assim eu manipulo os dados do model e não do combobox =D
Valeu galera, espero ter ajudado =)
Perfeito. Trabalhar um GtkComboBox utilizando um model é muito parecido com o jeito que se lida com o GtkTreeView. Ambos usam o GtkListStore como modelo de dados, então se vc domina um, o outro sai naturalmente.
Isso ai Wendell =D
Bom, nunca precisei, mas pela idéia, penso que seja assim que se coloca objetos dentro de combobox, como o checkbox.
Sem duvidas, utilizar modelo de dados, acaba virando mais simples e flexivel quando se entende como utilizar.