wxPython DnD stops working after SetSizeHints
Brett Calcott
brett at coombs.anu.edu.au
Mon Jun 7 22:24:59 EDT 2004
"Emiliano Molina" wrote
> <snip>
> from wxPython.wx import *
> from wxPython.xrc import *
>
> class TestFrame(wxFrame):
> def __init__(self,parent,ID):
> wxFrame.__init__(self,parent,ID,"test
frame",(100,30),(70,60),wxDEFAULT_FRAME_STYLE)
> self.panel=wxPanel(self,-1)
This gets overwritten -^
>
> class FileDropTarget(wxFileDropTarget):
> def __init__(self, window):
unused --------------------^
> wxFileDropTarget.__init__(self)
>
> def OnDropFiles(self, x, y, filenames):
> print filenames
>
> class App(wxApp):
> def OnInit(self):
>
> self.res=wxXmlResource("test.xrc")
> self.frame=self.res.LoadFrame(None,"FRAME1")
> self.frame.panel=XRCCTRL(self.frame,"test_list")
>
> dt=FileDropTarget(self.frame)
> self.frame.panel.SetDropTarget(dt)
>
> # The following lines break the drag and drop
> # self.panel=XRCCTRL(self.frame,"panel")
> # sizer=self.panel.GetSizer()
> # sizer.SetSizeHints(self.frame)
What is self.panel, as opposed to self.frame.panel?
>
> self.frame.Show()
> self.SetTopWindow(self.frame)
>
> return True
>
Hi Emiliano, it isn't clear what you are trying to do here, you seem to
have a panel being created in 3 different places -- which one do you
want? I suspect that the self.panel, is hiding the other panel
that you created (self.frame.panel) which is the drop target (just a
guess)
I've never used xrc, but this works for me (is it what you want?)
class App(wxApp):
def OnInit(self):
self.res=wxXmlResource("test.xrc")
self.frame=self.res.LoadFrame(None,"FRAME1")
self.frame.panel=XRCCTRL(self.frame,"panel")
dt=FileDropTarget()
self.frame.panel.SetDropTarget(dt)
# The following lines break the drag and drop
sizer=self.frame.panel.GetSizer()
sizer.SetSizeHints(self.frame)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
More information about the Python-list
mailing list