« Return to Thread: Combobox (set active and retrieve data)

Re: Combobox (set active and retrieve data)

by Jake Cobb :: Rate this Message:

Reply to Author | View in Thread

Hello,

To store the index you should keep a second column in your model. So,
create your model this way:

$modelo2 = new GtkListStore(Gtk::TYPE_STRING, Gtk::TYPE_LONG);

And add your data this way:

foreach($aProveedor as $index => $proveedor)
{
    $modelo2->append(array($proveedor, $index));
}

Then you can loop over the model to find the row with the desired index
and set it active, assuming the index you want to activate by is in
$desired_index:

foreach($modelo2 as $row)
{
    if($row[1] == $desired_index)
    {
        $cajasCampos[$fila]->set_active_iter($row->iter);
        break;
    }
}

You can retrieve your data in a similar loop, $row[0] will be the text
and $row[1] will be the integer.

-Jake Cobb

Robertico wrote:

> Hi .
>
> I have an array with pair values  $aProveedor =
> array(04=>"Nacional",05=>"Extranjero",06=>"Global");
>
> And hace this code.
>
> $cajasCampos[$fila] = new GtkComboBox();
> $modelo2 = new GtkListStore(Gtk::TYPE_STRING);
> $cajasCampos[$fila]->set_model($modelo2);
> $cellRenderer = new GtkCellRendererText();
> $cajasCampos[$fila]->pack_start($cellRenderer);
> $cajasCampos[$fila]->set_attributes($cellRenderer, 'text', 0);
>
> foreach($aProveedor as $proveedor)
> {
>      $modelo2->append(array($proveedor));
> }
> $cajasCampos[$fila]->set_active(0);  //(1) --> How can I set active by
> index? I mean  set_active(04) | set_active(05) | set_active(06)
>
> (2) I need the combo shows the Text Values (Nacional, Extranjero, Global),
> but when I retrieve date value I need to get the numeric values (04,05,06)
>
> How can I do that?
>
> Thanks in advance!!
>
>  

--
PHP-GTK General Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

 « Return to Thread: Combobox (set active and retrieve data)