[wxpython-users] ?

Marlin Rowley marlin_rowley at hotmail.com
Fri Apr 25 12:46:36 PDT 2008


Where do you do this?  Here is the calling __init__ sequence for each of th=
e 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.  May=
be then, I'll see some things that I didn't. :)



Let's start with the Frame and Window creation.  Right now, I pass a resolu=
tion 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 upon, NOT the f=
rame that includes all the widgets.  However, this is exactly what is happe=
ning.  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 w=
ant, however, the drawing window will be a little less than that because of=
 the Menu bar.  How do I pass the size of the Frame such that the Window ge=
ts created with 320x240, THEN the Frame builds around that (so the 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.=A0 Create a custom banner to support your cause.
http://im.live.com/Messenger/IM/Contribute/Default.aspx?source=3DTXT_TAGHM_=
MSN_Make_IM_Yours
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wxwidgets.org/pipermail/wxpython-users/attachments/200804=
25/11637179/attachment-0001.htm


More information about the wxpython-users mailing list