[wxpython-users] ?
raffaello
barbarossa.platz at gmail.com
Fri Apr 25 12:59:07 PDT 2008
First, in __init__, you build the Frame with
wx.Frame.__init__(self, parent =3D None, id =3D -1, title =3D
'yourtopframe')
without worrying about its size. Only then, when the frame exists, you add
the command
self.SetClientSize(size)
2008/4/25, Marlin Rowley <marlin_rowley at hotmail.com>:
>
> Where do you do this? Here is the calling __init__ sequence for each of
> the classes in my script..
>
> Window()
> {
> ??
> }
>
> Frame() {
> win =3D Window()
> win.SetClientSize(size) <<<< -- doesn't work here!
> }
>
> App(){
> frame =3D Frame()
> ??
> }
>
>
> ------------------------------
> Date: Fri, 25 Apr 2008 21:20:22 +0200
> From: barbarossa.platz at gmail.com
> To: wxpython-users at lists.wxwidgets.org
> Subject: Re: [wxpython-users] Having problems with wxPython - HELP!!!
>
> Try wxWindow.SetClientSize(width, ** height) or
> wxWindow.SetClientSize(size). The 'decorations' will adjust automatically.
>
> 2008/4/25, Tim Roberts <timr at probo.com>:
>
> Marlin Rowley wrote:
>
>
> I want to start from the beginning and work my way to what I have now.
> Maybe then, I'll see some things that I didn't. :)
>
> Let's start with the Frame and Window creation. Right now, I pass a
> resolution into my script (rfxRenderView.py 320 240). Let's say it's
> 320x240. I expect this to be the resolution of the Window to be drawn up=
on,
> NOT the frame that includes all the widgets. However, this is exactly wh=
at
> is happening. The problem is that I call Frame's constructor in my own
> child frame and I pass it the size so that the window comes up relatively
> the size I want, however, the drawing window will be a little less than t=
hat
> because of the Menu bar. How do I pass the size of the Frame such that t=
he
> Window gets created with 320x240, THEN the Frame builds around that (so t=
he
> actually size of the frame+window > 320x240)?
>
>
> The vocabulary here is "window size" (which includes the decorations)
> and "client region" (which does not). Yes, when you specify a size,
> that includes the decorations. You want to specify the size of the
> client region, which you can't do, directly.
>
> Although it is possible to compute the size of each of the decorations,
> it is a tedious process, because of the possibility of themes. All the
> edges can vary, so you end up fetching a whole bunch of system
> preferences values. The easiest solution is to fetch your assigned
> window size and your assigned client size, compute the difference, and
> adjust yourself accordingly. For example, try adding the following
> after you create the wx.Frame:
>
> ws =3D self.GetSize()
> cs =3D self.GetClientSize()
> # Bump the window size by the delta between the two.
> ws.IncBy( *(ws-cs) )
> self.SetSize( ws )
>
> --
> Tim Roberts, timr at probo.com
> Providenza & Boekelheide, Inc.
>
>
> _______________________________________________
> wxpython-users mailing list
> wxpython-users at lists.wxwidgets.org
> http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
>
>
>
> ------------------------------
> Make i'm yours. Create a custom banner to support your cause.<http://im.l=
ive.com/Messenger/IM/Contribute/Default.aspx?source=3DTXT_TAGHM_MSN_Make_IM=
_Yours>
>
> _______________________________________________
> wxpython-users mailing list
> wxpython-users at lists.wxwidgets.org
> http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wxwidgets.org/pipermail/wxpython-users/attachments/200804=
25/67b60226/attachment.htm
More information about the wxpython-users
mailing list