XRC x Python code

Hi!

I've been thinking about a paradigm switch for some apps and I wanted to
know what would be the drawbacks on using XRC instead of Python code
directly into my applications.

I am thinking about that to enforce some new people to focus on the two
different layers of the apps we'll be writing: logic and appearance/GUI.

Any hints on why to (not?) use XRC?

TIA,

···

--
Godoy. <godoy@ieee.org>

You should rephrase the question: Why use python code ?
Particularly for larger projects using ressources makes the maintenance way
easier. You just change the xrc file and the dialog will be fine.
In one of my apps I went even further. I wrote custom xml handlers that pull
information out of a database. I now can just add an entry to a table telling
the system to store values in field "ID_SOME_FIELD" into a specific database
column/table, or to do a certain validation. Works great. The only thing
about XRC is that some customizations aren't as easy as with python code, but
once you have written a custom handler it's a breeze.

Hi!

I've been thinking about a paradigm switch for some apps and I wanted to
know what would be the drawbacks on using XRC instead of Python code
directly into my applications.

I am thinking about that to enforce some new people to focus on the two
different layers of the apps we'll be writing: logic and appearance/GUI.

Any hints on why to (not?) use XRC?

TIA,

- --
  UC

- --
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

···

On Friday 30 April 2004 04:13 am, Jorge Godoy wrote:

Could you elaborate a bit more on the customizations you made? Particularly
the database part is very interesting to me.

Are your XML handlers parsed with Python? Are you using XML-RPC?

In fact, the "not as easy as with python code" customizations were the ones
that drove me to write my first message. That and some worry with
performance.

···

On Sex 30 Abr 2004 19:36, Uwe C. Schroeder wrote:

You should rephrase the question: Why use python code ?
Particularly for larger projects using ressources makes the maintenance
way easier. You just change the xrc file and the dialog will be fine.
In one of my apps I went even further. I wrote custom xml handlers that
pull information out of a database. I now can just add an entry to a table
telling the system to store values in field "ID_SOME_FIELD" into a
specific database column/table, or to do a certain validation. Works
great. The only thing about XRC is that some customizations aren't as easy
as with python code, but once you have written a custom handler it's a
breeze.

--
Godoy. <godoy@ieee.org>

Jorge Godoy wrote:

Hi!

I've been thinking about a paradigm switch for some apps and I wanted to
know what would be the drawbacks on using XRC instead of Python code
directly into my applications.

I am thinking about that to enforce some new people to focus on the two
different layers of the apps we'll be writing: logic and appearance/GUI.

Any hints on why to (not?) use XRC?

There are no drawbacks to XRC, other than you have to do a little extra
work for it to be able to use classes that it doesn't already know about.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

But does it knows about all standard wxPython 2.4.2.4 classes? Or are there
any limitations?

···

On Sex 30 Abr 2004 22:17, Robin Dunn wrote:

There are no drawbacks to XRC, other than you have to do a little extra
work for it to be able to use classes that it doesn't already know about.

--
Godoy. <godoy@ieee.org>

Robin Dunn wrote:

There are no drawbacks to XRC, other than you have to do a little extra
work for it to be able to use classes that it doesn't already know about.

I suppose a better question is could you do the entire demo using
XRC, and if so why haven't you :slight_smile:

Roger

It would be interesting to see some of the stuff there done with XRC.
Specially to compare performance...

I also suppose the benefits I get with psyco wouldn't be the same.

···

On Sex 30 Abr 2004 22:34, Roger Binns wrote:

I suppose a better question is could you do the entire demo using
XRC, and if so why haven't you :slight_smile:

--
Godoy. <godoy@ieee.org>

> You should rephrase the question: Why use python code ?
> Particularly for larger projects using ressources makes the maintenance
> way easier. You just change the xrc file and the dialog will be fine.
> In one of my apps I went even further. I wrote custom xml handlers that
> pull information out of a database. I now can just add an entry to a
> table telling the system to store values in field "ID_SOME_FIELD" into a
> specific database column/table, or to do a certain validation. Works
> great. The only thing about XRC is that some customizations aren't as
> easy as with python code, but once you have written a custom handler it's
> a breeze.

Could you elaborate a bit more on the customizations you made? Particularly
the database part is very interesting to me.

You can see the database part in the attached demo handler. The _attr variable
is a database row abstraction class instance, which allows accessing the
columns by name.
The table layout is:

CREATE TABLE public.ib_dialog
(
  id int4 NOT NULL DEFAULT nextval('ib_dialog_seq'::text),
  dialog varchar(255),
  field varchar(255),
  field_type varchar(255),
  field_mask varchar(255),
  autoformat varchar(255),
  validator varchar(255),
  mandatory bool DEFAULT 'f',
  dbtable varchar(255),
  dbfield varchar(255),
  message varchar(255),
  mandatory_mask varchar(255),
  field_mask_format varchar(255),
  decimals int4 DEFAULT 2,
  CONSTRAINT ib_dialog_pkey PRIMARY KEY (id)
)

Are your XML handlers parsed with Python? Are you using XML-RPC?

Yes and No. The XML handlers are normal python classes. I attached one of
them, maybe you can see what I did. There's also some documentation on
writing own XML handlers in the wxwindows docs.
I'm using Twisted perspective broker as network layer (www.twistedmatrix.com).

In fact, the "not as easy as with python code" customizations were the ones
that drove me to write my first message. That and some worry with
performance.

Due to the above, if I have to add another say checkbox to the dialog I just
add it and also add a row in the ib_dialog table to tell the system which
databasefield to store the value to and which validator to use for that. All
the "mask" values in the table define the mask used in conjunction with the
maskedTextCtrl class.

Performance was never an issue. Currently the xrc file contains some 60
dialogs and has a total size over 1 MB - I can't notice anything slow about
it.

The problem with customization is that for anything special you want to do you
have to modify the Handler code - and if it's only one widget in one dialog
you want to behave differently you have to write a completely new one using a
custom class in the xrc file just to address that little thing.

Hope that helps

  UC

- --
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

demo.py (2.34 KB)

···

On Friday 30 April 2004 06:11 pm, Jorge Godoy wrote:

On Sex 30 Abr 2004 19:36, Uwe C. Schroeder wrote:

I gues it does. Haven't used all of them, but I never saw any problem with it.

- --
  UC

- --
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

···

On Friday 30 April 2004 06:18 pm, Jorge Godoy wrote:

On Sex 30 Abr 2004 22:17, Robin Dunn wrote:
> There are no drawbacks to XRC, other than you have to do a little extra
> work for it to be able to use classes that it doesn't already know about.

But does it knows about all standard wxPython 2.4.2.4 classes? Or are there
any limitations?

Could you elaborate a bit more on the customizations you made?
Particularly the database part is very interesting to me.

You can see the database part in the attached demo handler. The _attr
variable is a database row abstraction class instance, which allows
accessing the columns by name.

(...)

Thank you very much. I'll study it better.

Are your XML handlers parsed with Python? Are you using XML-RPC?

Yes and No. The XML handlers are normal python classes. I attached one of
them, maybe you can see what I did. There's also some documentation on
writing own XML handlers in the wxwindows docs.
I'm using Twisted perspective broker as network layer
(www.twistedmatrix.com).

I'll look at them too.

Due to the above, if I have to add another say checkbox to the dialog I
just add it and also add a row in the ib_dialog table to tell the system
which databasefield to store the value to and which validator to use for
that. All the "mask" values in the table define the mask used in
conjunction with the maskedTextCtrl class.

Do yo have more complex things with data in a windows spread across several
tables? It gets more complex to handle...

Performance was never an issue. Currently the xrc file contains some 60
dialogs and has a total size over 1 MB - I can't notice anything slow
about it.

Hmmm... This is also good to know. I'll definitely give it another try.

The problem with customization is that for anything special you want to do
you have to modify the Handler code - and if it's only one widget in one
dialog you want to behave differently you have to write a completely new
one using a custom class in the xrc file just to address that little
thing.

Things can't be perfect :wink:

- --
Godoy. <godoy@ieee.org>

···

On Sex 30 Abr 2004 22:54, Uwe C. Schroeder wrote:

On Friday 30 April 2004 06:11 pm, Jorge Godoy wrote:

Hello,

How would you go about using the wx classes not supported by XRC? For
example, I noticed (or I think it is true) that the special wx*Dialog
classes are not supported. Would I use the subclassing capability in the
XRC file to use those classes or would I have to just write this code
manually?

Thanks for the information.

Brian

···

On Fri, 2004-04-30 at 21:17, Robin Dunn wrote:

Jorge Godoy wrote:
> Hi!
>
>
> I've been thinking about a paradigm switch for some apps and I wanted to
> know what would be the drawbacks on using XRC instead of Python code
> directly into my applications.
>
> I am thinking about that to enforce some new people to focus on the two
> different layers of the apps we'll be writing: logic and appearance/GUI.
>
>
> Any hints on why to (not?) use XRC?

There are no drawbacks to XRC, other than you have to do a little extra
work for it to be able to use classes that it doesn't already know about.

>> Could you elaborate a bit more on the customizations you made?
>> Particularly the database part is very interesting to me.
>
> You can see the database part in the attached demo handler. The _attr
> variable is a database row abstraction class instance, which allows
> accessing the columns by name.

(...)

Thank you very much. I'll study it better.

>> Are your XML handlers parsed with Python? Are you using XML-RPC?
>
> Yes and No. The XML handlers are normal python classes. I attached one of
> them, maybe you can see what I did. There's also some documentation on
> writing own XML handlers in the wxwindows docs.
> I'm using Twisted perspective broker as network layer
> (www.twistedmatrix.com).

I'll look at them too.

> Due to the above, if I have to add another say checkbox to the dialog I
> just add it and also add a row in the ib_dialog table to tell the system
> which databasefield to store the value to and which validator to use for
> that. All the "mask" values in the table define the mask used in
> conjunction with the maskedTextCtrl class.

Do yo have more complex things with data in a windows spread across several
tables? It gets more complex to handle...

Yes i do. The trick is, that I read the tables into a dictionary structure. If
you have the usual "client","address","contact information" table structure,
I read the data into a dict

client['client']=client data
client['address']=address data
client['contacts']=dict of contact data

The field names in the dialog table reference the keys of the dict - makes it
very easy to deal with.

> Performance was never an issue. Currently the xrc file contains some 60
> dialogs and has a total size over 1 MB - I can't notice anything slow
> about it.

Hmmm... This is also good to know. I'll definitely give it another try.

> The problem with customization is that for anything special you want to
> do you have to modify the Handler code - and if it's only one widget in
> one dialog you want to behave differently you have to write a completely
> new one using a custom class in the xrc file just to address that little
> thing.

Things can't be perfect :wink:

- --
  UC

- --
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

···

On Friday 30 April 2004 07:33 pm, Jorge Godoy wrote:

On Sex 30 Abr 2004 22:54, Uwe C. Schroeder wrote:
> On Friday 30 April 2004 06:11 pm, Jorge Godoy wrote:

What program do you use to create/maintain the XRC? We currently use
wxGlade, but it's (currently) not well suited for large XRC projects.

For a project I'm working on, we have created a notebook with 3 tabs
containing all sorts of panels (with a background color and fixed
fontsizes) and experiencing noticable delay with loadPanel depending
on the complexety of panels used. Substituting the XRC with generated
python code speeds up the panel creation process. So there seems to
be some overhead involved when using, atleast complex, XRC panels.

Remy

···

On Saturday 01 May 2004 03:54, Uwe C. Schroeder wrote:

On Friday 30 April 2004 06:11 pm, Jorge Godoy wrote:
> On Sex 30 Abr 2004 19:36, Uwe C. Schroeder wrote:
> > You should rephrase the question: Why use python code ?
> > Particularly for larger projects using ressources makes the
> > maintenance way easier. You just change the xrc file and the
> > dialog will be fine. In one of my apps I went even further. I
> > wrote custom xml handlers that pull information out of a
> > database. I now can just add an entry to a table telling the
> > system to store values in field "ID_SOME_FIELD" into a specific
> > database column/table, or to do a certain validation. Works
> > great. The only thing about XRC is that some customizations
> > aren't as easy as with python code, but once you have written a
> > custom handler it's a breeze.
>
> Could you elaborate a bit more on the customizations you made?
> Particularly the database part is very interesting to me.

You can see the database part in the attached demo handler. The
_attr variable is a database row abstraction class instance, which
allows accessing the columns by name.
The table layout is:

CREATE TABLE public.ib_dialog
(
  id int4 NOT NULL DEFAULT nextval('ib_dialog_seq'::text),
  dialog varchar(255),
  field varchar(255),
  field_type varchar(255),
  field_mask varchar(255),
  autoformat varchar(255),
  validator varchar(255),
  mandatory bool DEFAULT 'f',
  dbtable varchar(255),
  dbfield varchar(255),
  message varchar(255),
  mandatory_mask varchar(255),
  field_mask_format varchar(255),
  decimals int4 DEFAULT 2,
  CONSTRAINT ib_dialog_pkey PRIMARY KEY (id)
)

> Are your XML handlers parsed with Python? Are you using XML-RPC?

Yes and No. The XML handlers are normal python classes. I attached
one of them, maybe you can see what I did. There's also some
documentation on writing own XML handlers in the wxwindows docs.
I'm using Twisted perspective broker as network layer
(www.twistedmatrix.com).

> In fact, the "not as easy as with python code" customizations
> were the ones that drove me to write my first message. That and
> some worry with performance.

Due to the above, if I have to add another say checkbox to the
dialog I just add it and also add a row in the ib_dialog table to
tell the system which databasefield to store the value to and which
validator to use for that. All the "mask" values in the table
define the mask used in conjunction with the maskedTextCtrl class.

Performance was never an issue. Currently the xrc file contains
some 60 dialogs and has a total size over 1 MB - I can't notice
anything slow about it.

The problem with customization is that for anything special you
want to do you have to modify the Handler code - and if it's only
one widget in one dialog you want to behave differently you have to
write a completely new one using a custom class in the xrc file
just to address that little thing.

I'm using wxDesigner. Not a perfect tool, but for my taste the best one I ran
across yet. My screens aren't very complex, say maybe 30 controls max per
dialog. I just open more windows if I need more widgets. I have one screen
that would have needed more controls, but I managed to put them into a grid,
so for xrc it's just one control.

  UC

- --
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

···

On Saturday 01 May 2004 04:37 am, Remy C. Cool wrote:

On Saturday 01 May 2004 03:54, Uwe C. Schroeder wrote:
> On Friday 30 April 2004 06:11 pm, Jorge Godoy wrote:
> > On Sex 30 Abr 2004 19:36, Uwe C. Schroeder wrote:
> > > You should rephrase the question: Why use python code ?
> > > Particularly for larger projects using ressources makes the
> > > maintenance way easier. You just change the xrc file and the
> > > dialog will be fine. In one of my apps I went even further. I
> > > wrote custom xml handlers that pull information out of a
> > > database. I now can just add an entry to a table telling the
> > > system to store values in field "ID_SOME_FIELD" into a specific
> > > database column/table, or to do a certain validation. Works
> > > great. The only thing about XRC is that some customizations
> > > aren't as easy as with python code, but once you have written a
> > > custom handler it's a breeze.
> >
> > Could you elaborate a bit more on the customizations you made?
> > Particularly the database part is very interesting to me.
>
> You can see the database part in the attached demo handler. The
> _attr variable is a database row abstraction class instance, which
> allows accessing the columns by name.
> The table layout is:
>
> CREATE TABLE public.ib_dialog
> (
> id int4 NOT NULL DEFAULT nextval('ib_dialog_seq'::text),
> dialog varchar(255),
> field varchar(255),
> field_type varchar(255),
> field_mask varchar(255),
> autoformat varchar(255),
> validator varchar(255),
> mandatory bool DEFAULT 'f',
> dbtable varchar(255),
> dbfield varchar(255),
> message varchar(255),
> mandatory_mask varchar(255),
> field_mask_format varchar(255),
> decimals int4 DEFAULT 2,
> CONSTRAINT ib_dialog_pkey PRIMARY KEY (id)
> )
>
> > Are your XML handlers parsed with Python? Are you using XML-RPC?
>
> Yes and No. The XML handlers are normal python classes. I attached
> one of them, maybe you can see what I did. There's also some
> documentation on writing own XML handlers in the wxwindows docs.
> I'm using Twisted perspective broker as network layer
> (www.twistedmatrix.com).
>
> > In fact, the "not as easy as with python code" customizations
> > were the ones that drove me to write my first message. That and
> > some worry with performance.
>
> Due to the above, if I have to add another say checkbox to the
> dialog I just add it and also add a row in the ib_dialog table to
> tell the system which databasefield to store the value to and which
> validator to use for that. All the "mask" values in the table
> define the mask used in conjunction with the maskedTextCtrl class.
>
> Performance was never an issue. Currently the xrc file contains
> some 60 dialogs and has a total size over 1 MB - I can't notice
> anything slow about it.
>
> The problem with customization is that for anything special you
> want to do you have to modify the Handler code - and if it's only
> one widget in one dialog you want to behave differently you have to
> write a completely new one using a custom class in the xrc file
> just to address that little thing.

What program do you use to create/maintain the XRC? We currently use
wxGlade, but it's (currently) not well suited for large XRC projects.

For a project I'm working on, we have created a notebook with 3 tabs
containing all sorts of panels (with a background color and fixed
fontsizes) and experiencing noticable delay with loadPanel depending
on the complexety of panels used. Substituting the XRC with generated
python code speeds up the panel creation process. So there seems to
be some overhead involved when using, atleast complex, XRC panels.

Brian Olsen wrote:

Jorge Godoy wrote:

Hi!

I've been thinking about a paradigm switch for some apps and I wanted to
know what would be the drawbacks on using XRC instead of Python code
directly into my applications.

I am thinking about that to enforce some new people to focus on the two
different layers of the apps we'll be writing: logic and appearance/GUI.

Any hints on why to (not?) use XRC?

There are no drawbacks to XRC, other than you have to do a little extra
work for it to be able to use classes that it doesn't already know about.

Hello,

How would you go about using the wx classes not supported by XRC?

Take a look at the XmlResourceHandler and XmlResourceSubclass examples
in the demo.

For
example, I noticed (or I think it is true) that the special wx*Dialog
classes are not supported. Would I use the subclassing capability in the
XRC file to use those classes or would I have to just write this code
manually?

Normally you would just use them directly in response to events from
your main app. Since XRC is all about defining the layout and content
of custom windows, menus, etc. and nothing about the actual
functionality (You still have to write the code to implement the event
handlers, etc.) then there is no reason for XRC to support the common
dialogs.

···

On Fri, 2004-04-30 at 21:17, Robin Dunn wrote:

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

I have a series of static text controls where I want to set
their values (via SetLabel) using a for loop.

They are named : ques_slot1, ques_slot2, ques_slot3,… and
ans_1_slot1, ans_2_slot1, ans_3_slot1,…

Using setattr, I could do something like this:

for i in range(start, stop):

var = "ques_slot%d" % i

val = ques_dictionary[i]

setattr(self, var, val)

Is there some way to do the same thing with “SetLabel” ? (I
know wxGrid has SetColAttr for cells…is there some way of doing this
with SetLable"

Maybe I am going at this the wrong way…I am trying to write an app to
display 10 questions (out of 100 to 150 questions total) per page. Each
question will have between 2 & 6 possible answers. I am trying to use
static text fields for the questions and answers and radio buttons to
allow the user to select an answer.

I am sure there is a better way…anyone know which way I should
go?

Thanks

Frank

···

============

Frank Wilder

610-370-1039

============

What about using something like this

Constructing them:

ques_slots =
ans_slots =
for i in range(10):
  q = wx.StaticText(self, -1, "Question %d" % i)
  a = wx.TextCtrl(self, -1, "")
  ques_slots.append(q)
  ans_slots.append(a)
  
altering them:

for i, q in enumerate(ques_slots):
  q.SetLabel("New Question %d" % i)

Hopefully this is what you meant and is useful

joe

···

On Sun, 2 May 2004, Frank Wilder wrote:

I have a series of static text controls where I want to set their values
(via SetLabel) using a for loop.

They are named : ques_slot1, ques_slot2, ques_slot3,... and ans_1_slot1,
ans_2_slot1, ans_3_slot1,...

Using setattr, I could do something like this:

for i in range(start, stop):
     var = "ques_slot%d" % i
     val = ques_dictionary[i]
     setattr(self, var, val)

Is there some way to do the same thing with "SetLabel" ? (I know wxGrid has
SetColAttr for cells...is there some way of doing this with SetLable"

Maybe I am going at this the wrong way....I am trying to write an app to
display 10 questions (out of 100 to 150 questions total) per page. Each
question will have between 2 & 6 possible answers. I am trying to use
static text fields for the questions and answers and radio buttons to allow
the user to select an answer.

I am sure there is a better way...anyone know which way I should go?

Thanks
   Frank

============
Frank Wilder
610-370-1039

Maybe it's just me, but it seems that the XmlResourceSubclass example
actually isn't using XRC?

line 82 in the file (XmlResourceSubclass.py I assume):
        # Now create a panel from the resource data
        #panel = res.LoadPanel(self, "MyPanel")
        panel = MyCustomPanel()
        panel.Create(self, -1)

The label in the xrc text does not seem to be appearing.

I am using 2.5.1.5 on windows XP.

I have been having troubles trying to get XRC subclassing to work - even
though __init__ is called for my subclass,
the LoadPanel call always seems to return a wxPanel object.

def CreateColorPanel(parent):
    RESFILE = 'xrc/colorPanel.xrc'
    res = xrc.XmlResource(RESFILE)
    ret = res.LoadPanel(parent,'COLORPANEL')
    print ret

class ColorPanel(wxPanel):
    def __init__(self):
        p = PrePanel()
        self.PostCreate(p)
        print self

a call to CreateColorPanel() prints:
<ui.ColorMapEditor.ColorPanel; proxy of C++ wxPanel instance at
_08b7d60a_p_wxPanel>
<wx.windows.Panel; proxy of C++ wxPanel instance at _08b7d60a_p_wxPanel>

Is the demo file wrong, is there more I need to add to the constructor. Do
I perhaps have to implement __new__?

regards,

···

--
Eggert Jon Magnusson

Eggert Jon Magnusson wrote:

Maybe it's just me, but it seems that the XmlResourceSubclass example
actually isn't using XRC?

Correct. I had been trying to track down some problems and forgot to put the XRC loading code back in place before the release. The current version in CVS is loading the panel from XRC.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Isn't the object returned by LoadPanel supposed to be of the subclass?
I have just tried the demo with the new file, the subclass seems to be
somehow attached to the panel, then usurped by the Panel class.
Here's how I found out (from line 71 onwards):

        text = wx.TextCtrl(self, -1, resourceText,
                          style=wx.TE_READONLY|wx.TE_MULTILINE)
        text.SetInsertionPoint(0)

        line = wx.StaticLine(self, -1)

        # Load the resource
        res = xrc.EmptyXmlResource()
        res.LoadFromString(resourceText)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "MyPanel")
+++ text.SetValue(repr(panel)

The text box has the text: <wx.windows.Panel; proxy of C++ wxPanel instance
at _10034a01_p_wxPanel>

Which seems to me to be the wrong behaviour. As a workaround, I assign the
correct __class__
in my own code, but that feels quite hacky to do :slight_smile:

···

-----Original Message-----
From: Robin Dunn [mailto:robin@alldunn.com]
Sent: 5. mai 2004 17:23
To: wxPython-users@lists.wxwidgets.org
Subject: Re: [wxPython-users] XRC x Python code

Eggert Jon Magnusson wrote:

Maybe it's just me, but it seems that the XmlResourceSubclass example
actually isn't using XRC?

Correct. I had been trying to track down some problems and forgot to
put the XRC loading code back in place before the release. The current
version in CVS is loading the panel from XRC.

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-users-help@lists.wxwidgets.org