Combo and ClientData (was: RE: Help with Wx::Perl::PubSub)

[email protected] (RAPPAZ Francois)
Newsgroups perl.wxperl.users
Message-ID <[email protected]>
Hi there,

Steve, Thanks for the example and the urls. I'm on W7 and I didn't want to install Python + wxPython, so I'm using wxFormBuilder to produce xrc files that I load with perl.

Using an array (or an hash with id/position in the combo) that shadows the combox content works, but I would like to associate the id with combo using client data. 

In my code

$w holds a Wx::ComboBox ref.
If I loop through the id and the names I want to show in the combo:

  $w->Append($displayedValue); # string for position $i
  $w->SetClientData($i, $value); #$value is what I want retrieve from the selection

But 

Print Dumper $w->GetClientData($i)); return undef

What am I missing ? Is there some lines of working code somewhere ?

Thanks

François



> -----Original Message-----
> From: Steve Cookson - gmail [mailto:[email protected]]
> Sent: mardi, 19. mai 2015 16:21
> To: RAPPAZ Francois
> Cc: [email protected]
> Subject: Re: Help with Wx::Perl::PubSub
> 
> Hi François,
> 
> On 19/05/15 07:55, RAPPAZ Francois wrote:
> > Another question: I would like to have a dropdbox that list usernames
> and that return a userid when one select a name. Shall I use a
> Wx::ListBox or Wx::ListCtrl ?
> > Can you point me to some codes examples ?
> I would use wx::combobox (here:
> http://docs.wxwidgets.org/trunk/classwx_combo_box.html).  I don't
> recall if it has a a client data attribute like listctrl, if not you
> can always use an indexed array like this:
> 
> @combo_options = ("Andy", "Bob", "Charlie", "Dave", "Edward",
> "François"); # User names @userid = ("a_smith", "r_smith", "c_smith",
> "d_smith", "e_smith", "f_rappaz); # User ids
> 
> Wx::ComboBox->new($self->{$parent, -1, "", wxDefaultPosition,
> wxDefaultSize, \@combo_options, wxCB_DROPDOWN|wxCB_READONLY|wxCB_SORT);
> 
> .
> .
> .
> .
> 
>      $userid_selected=$userid[$combobox->GetSelection()];
> 
> There's so much code in cpan -i Wx::Demo for everything.  Otherwise
> people have put various tutorials on PerlMonks.  Here are some other
> links:
> 
> http://wxperl.sourceforge.net/tutorial/tutorial.html
> http://learnperl.scratchcomputing.com/tutorials/wxperl/
> http://wiki.wxperl.nl/Main_Page
> http://www.perlmonks.org/?node_id=112297
> http://examples.wxperl.it/
> http://www.perl.com/pub/2001/09/12/wxtutorial1.html
> http://padre.perlide.org/learning-wxperl-and-wxwidgets.html
> 
> Oh and I almost forgot, wxGlade (apt-get install python-wxglade) will
> produce wxPerl code for you, although I don't know if it has been
> upgraded for 3.0.x.  I used it to to build most of my early screens.
> At least it will get your syntax right.
> 
> Good luck,
> 
> Steve.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.