To totally not answer your question, check out - pythoncard.sourceforge.net
It's the Visual Basic Userform IDE of wxPython. :)

On 7/1/05, Adam Bark <[EMAIL PROTECTED]> wrote:
On 6/26/05, Adam Cripps < [EMAIL PROTECTED]> wrote:
On 6/25/05, Adam Bark <[EMAIL PROTECTED]> wrote:
> Thanks for the info Adam I just seem to be having a problem with the panel
> size it greys out nearly all the image. Ideally I would like to make the
> panel transparent but I can't work out how to do that.
>
>
> On 6/25/05, Adam Cripps < [EMAIL PROTECTED]> wrote:
> > On 6/25/05, Adam Bark < [EMAIL PROTECTED] > wrote:
> > > Is it possible to put controls into a shaped window in wxPython. I have
> > > tried putting a button on the demo and it becomes the exact size and
> shape
> > > of the window. Also when I tried to bind it to an action it wouldn't
> even
> > > start.
> > >
> > >  Adam
> > >
> >
> > I'm working through something similar myself at the moment.
> >
> > Try adding a wx.Panel to the frame and then the button to the panel.
> > You can position them through pos parameter, but it should default to
> > the top left of the panel and have a good size if you use
> > button.SetSize(button.GetBestSize())
> >
> > HTH
> >
> > Adam

Adam - how much code do you have? Why not post it either here or the
wxpython-users list (to which I'm also subscribed) and we can take a
look.

Adam

--
http://www.monkeez.org
PGP key: 0x7111B833

I tried posting to the wxpython-users list but I'm not sure it worked nobody replied anyway.
Here's my test script:

import wx

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Shaped Window",
                         style =
                           wx.FRAME_SHAPED
                         | wx.SIMPLE_BORDER
                         | wx.FRAME_NO_TASKBAR
                         | wx.STAY_ON_TOP
                         )
        self.hasShape = False
        self.delta = (0,0)
       
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Bind(wx.EVT_MOTION, self.OnMouseMove)
       
        self.bkground = wx.Bitmap("/home/adam/bkgrnd.gif", wx.BITMAP_TYPE_GIF)
        w, h = self.bkground.GetWidth(), self.bkground.GetHeight()
        self.SetClientSize((w, h))
        self.Bind(wx.EVT_WINDOW_CREATE, self.SetWindowShape)
        panel = Panel(self, w, h)
        panel.Show()
        dc = wx.ClientDC(self)
        dc.DrawBitmap(self.bkground, 0,0, True)
       
    def SetWindowShape(self, evt):
        # Use the bitmap's mask to determine the region
        r = wx.RegionFromBitmap(self.bkground)
        self.hasShape = self.SetShape(r)
       
    def OnPaint(self, event):
        dc = wx.PaintDC(self)
        dc.DrawBitmap(self.bkground, 0,0, True)
       
    def OnMouseMove(self, evt):
        if evt.Dragging() and evt.LeftIsDown():
            x, y = self.ClientToScreen(evt.GetPosition())
            fp = (x - self.delta[0], y - self.delta[1])
            self.Move(fp)

class Panel(wx.Panel):
    def __init__(self, parent, width, height):
        wx.Panel.__init__(self, parent, -1, size=(width, height))

        button = wx.Button(self, -1, "hello")
        button.SetSize(button.GetBestSize())
        self.SetSize((width, height))
        #print dir(self)
           
if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = Frame()
    frame.Show()
    app.MainLoop()

Thanks.
Adam.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor





--
'There is only one basic human right, and that is to do as you damn well please.
And with it comes the only basic human duty, to take the consequences.'
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to