WxPython.wx.propgrid.Удаление свойств - PullRequest
0 голосов
/ 07 декабря 2018

Есть сетка свойств, в сетке есть категория "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".

...