Есть сетка свойств, в сетке есть категория "uSignals":
import wx.propgrid as wxpg
self.pg = wxpg.PropertyGrid(self, size=(500, 600), style=wxpg.PG_SPLITTER_AUTO_CENTER|wxpg.PG_TOOLBAR)
self.uSignals = uSignals = pg.Append(wxpg.PropertyCategory('User signals')) # user signals
self.uSignalsChildren = [] # list of children in the node uSignals
В этой категории пользователь добавляет еще категории:
def AddSignal(self, event):
newSignal = wxpg.PropertyCategory(self.GenerateSignalName())
self.pg.AppendIn(self.uSignals, newSignal)
self.uSignalsChildren.append(newSignal)
Пользователь может удалить добавленные свойства.Написал следующее (если кто-то знает, как удалить только одно свойство, буду благодарен):
def OnDeleteSignal(self, event):
p = self.pg.GetSelection()
index = p.GetIndexInParent()
self.uSignalsChildren.remove(p)
self.uSignals.DeleteChildren() # remove all nested properties
# add properties besides deleting (removed it from the list of uSignalsChildren)
for signal in self.uSignalsChildren:
self.pg.AppendIn(self.uSignals, signal)
Проблема: когда вызывается OnDeleteSignal, когда вы пытаетесь добавить свойство (восстанавливаете ненужное свойствоудаляется) программа падает.Сбой программы "python.exe".