HyperTreeList initialization / changes in runtime when using wx widgets in columns

Hi all,

I've got a question about the HyperTreeList. I've got a HyperTreeList
and use SetItemWindow to change some of my column items to various
widgets like TextCtrl and CheckBox.

If I setup my HyperTreeList in my wx initialization and do not make
any changes, then everything works great. However, if I setup my tree
post initialization during runtime, any changes lock up my wx GUI.
Even with the wxPython demo, if I take all of the initialization of
the tree (starting at self.AddRoot line) and take that out of the
__init__ and put it in a separate function that is called post-
initialization, then the HTL will freeze up and not work at the time
Setup() is called.

Note that if I just do SetItemText rather than SetItemWindow and just
have text in my tree, everything still works fine.

With a wx.Grid, you can call BeginBatch/EndBatch and
ProcessTableMessage in order to make changes to the table during
runtime. Is there some similar set of methods that need to be called
for a HyperTreeList?

Basically I have an App which I want to use a HyperTreeList that will
change during runtime (add/remove/modify rows, which inherently will
add/remove/modify the ctrls within those rows). Has anybody managed
to do this?

Thanks!
Steve

Please make a small runnable sample that demonstrates the problem. MakingSampleApps - wxPyWiki

···

On 9/30/10 7:28 AM, srbshawker wrote:

Hi all,

I've got a question about the HyperTreeList. I've got a HyperTreeList
and use SetItemWindow to change some of my column items to various
widgets like TextCtrl and CheckBox.

If I setup my HyperTreeList in my wx initialization and do not make
any changes, then everything works great. However, if I setup my tree
post initialization during runtime, any changes lock up my wx GUI.
Even with the wxPython demo, if I take all of the initialization of
the tree (starting at self.AddRoot line) and take that out of the
__init__ and put it in a separate function that is called post-
initialization, then the HTL will freeze up and not work at the time
Setup() is called.

Note that if I just do SetItemText rather than SetItemWindow and just
have text in my tree, everything still works fine.

With a wx.Grid, you can call BeginBatch/EndBatch and
ProcessTableMessage in order to make changes to the table during
runtime. Is there some similar set of methods that need to be called
for a HyperTreeList?

Basically I have an App which I want to use a HyperTreeList that will
change during runtime (add/remove/modify rows, which inherently will
add/remove/modify the ctrls within those rows). Has anybody managed
to do this?

--
Robin Dunn
Software Craftsman