Re: Can you display a bitmap with/inside of a sizer?

Steve Cookson <[email protected]> Thu, 07 May 2015 04:02:49 -0300
Newsgroups gmane.comp.lang.perl.wxperl
Message-ID <[email protected]>
Hi James,

Well really I find sizers are a bit problematic too.  At the beginning I 
did them just as you are doing.  Then I started drawing the more 
complicated ones out on a piece of paper before starting and now I have 
a standard layout which I reuse so that I have a standard header, a main 
panel and a standard footer with a standard set of buttons in it.  The 
main panel still requires some thinking, but I would have used the 
nested sizers idea that you used. Wx::GridBagSizer is a bit more 
complicated, but would also have worked, that way you might have been 
able to do the whole thing with one sizer.

Regarding the memory leak, I thought I had it.  I made a number of 
changes to make the code more streamlined and efficient and lo and 
behold the leak disappeared only to pop up else where.

It's driving me a bit crazier than I was anyway, and worse, I don't even 
know if it's causing the video crash!  Any suggestions welcome!

Thanks for asking,

Steve.

On 06/05/15 23:39, James Lynes wrote:
> Solved... via trial and error and error and error...
>
> Made the top level sizer horizontal, containing a left and right 
> vertical, containing text controls, bitmap, and buttons.
>
> Will post once I add a few more bells and whistles.
>
> Thanks again,
>
> James
>
>
> On Wed, May 6, 2015 at 4:06 PM, James Lynes <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     Steve, thanks! Did the job.
>
>     But, of course, one question leads to at least one more.....
>
>     I would like the bitmap to be displayed to the right of a column
>     of TextCtrls. Currently the TextCtrls are being displayed under
>     the bitmap now that I'm not using an onPaint event . Do I need to
>     create two sub-panels with sub-sizers, one for the bitmap and one
>     for the TextCtrls? Or should the top sizer be a horzontal rather
>     than vertical? Trying to make some sense of this sizer stuff.
>
>     James
>
>     PS: Did you find your memory leak?
>
>     On Mon, May 4, 2015 at 11:32 AM, Steve Cookson
>     <[email protected] <mailto:[email protected]>> wrote:
>
>         Hi James,
>
>         You want Wx::StaticBitmap, like this:
>
>             my $bmp = Wx::Bitmap->new("path/to/bitmap.png",
>         wxBITMAP_TYPE_PNG) ;
>             my $sbm = Wx::StaticBitmap->new($parent, wxID_ANY, $bmp,
>         wxDefaultPosition, wxDefaultSize, );
>             $sizer->Add($sbm, 0, 0, 0);
>
>         Regards
>
>         Steve.
>
>
>
>         On 02/05/15 16:05, James Lynes wrote:
>
>             Good day!
>
>             I'm working on a little app to design common emitter
>             amplifiers. I created a circuit schematic with Eagle and
>             exported it to a PNG file.
>
>             I am currently displaying the PNG at a fixed location of
>             the screen with:
>
>                 Wx::Event::EVT_PAINT($self, sub {
>                     my ($self, $event) = @_;
>                     My $dc = Wx::PaintDC->new($self);
>                     my $bmp = Wx::Bitmap->new("CEAmpImg.png,
>             wxBITMAP_TYPE_PNG);
>                     $dc->DrawBitmap($bmp, 150, 50, 1);});
>
>             If would be nice if I could blend this in with the sizers
>             that are controlling the layout of the input and output
>             TextCtrls.
>
>             Thanks for your ideas.
>
>             James
>
>
>
>
>