Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Centring text in a WxPerl static text box

by beech (Vicar)
on Feb 14, 2018 at 05:36 UTC ( #1209104=note: print w/replies, xml ) Need Help??


in reply to Centring text in a WxPerl static text box

The following code, based on an example in http://learnperl.scratchcomputing.com/tutorials/wxperl/, is a minimum example which is supposed to put up a StaticText control with its legend centred. Instead it is resolutely left-aligned. I have tried everything I can think of, including putting wxALIGN_CENTRE on the sizer add, calling the CentreOnParent method of the text box ... and a dozen other things I can't remember. What am I doing wrong?

Hi,

What version are you using?

wxALIGN_CENTRE seems to do the trick for me, without it the text is left aligned

Perl 5.016001 Wx 0.9922 wxWidgets 2.9.4

 print join( ' ', "\n", Perl => $], Wx => $Wx::VERSION, Wx::wxVERSION_STRING, "\n" );

Also, I wouldn't expect a wxVERTICAL box sizer to try to align horizontally :)

Replies are listed 'Best First'.
Re^2: Centring text in a WxPerl static text box
by HenryLaw (Initiate) on Feb 14, 2018 at 08:41 UTC

    > What version are you using?

    Perl 5.022001 Wx 0.9923 wxWidgets 3.0.2

    > wxALIGN_CENTRE seems to do the trick for me, without it the text is left aligned

    When you say "Does the trick", do you mean my code gives you centred text? Aaagh!

    > Also, I wouldn't expect a wxVERTICAL box sizer to try to align horizontally :)

    Quite so; but I did try the wxALIGN_CENTRE flag on the sizer's Add method, without any obvious difference. And in any case the plan was that the wxALIGN_CENTRE flag on the StaticText box itself was going to do the alignment.

    Thinking about what you said, I wonder if the StaticText box is actually only the size of the text, so that centring the text within it has no effect.

Re^2: Centring text in a WxPerl static text box
by HenryLaw (Initiate) on Feb 14, 2018 at 19:24 UTC

    Spent most of the afternoon fiddling with this. I'm convinced that the wxALIGN_CENTRE flag doesn't work.

    I've written a little subroutine which does what I want; it's OK but it shouldn't be necessary

    sub centre_text{ # centre_text( $text_control, $container ); # Not enough error checking, really ... my ( $text_control, $container ) = @_; my ($container_width) = $container->GetSizeWH(); my ($text_width) = $container->GetTextExtent( $text_control->GetLabe +l() ); my ( $text_x, $text_y ) = $text_control->GetPositionXY(); $text_control->Move( ($container_width-$text_width)/2, $text_y ); }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1209104]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2018-04-25 10:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?