GridCellBoolRenderer был удален — пример сетки wxPython

#python #python-3.x #user-interface #wxpython

Вопрос:

Я новичок в использовании wxPython, и у меня есть небольшая борьба…

Я следую довольно прямолинейным примерам из «wxPython в действии» Рэпина, Данна.

Я разместил полный список кода на этом GitHub: https://gist.github.com/ejohnso9/b60f4c4780d0c6b27c2f87de378494a6

Если вы запустите код как есть, он будет (или должен) отображать простую сетку, 25 строк, 10 столбцов с добавлением некоторой раскраски (по столбцам). Кажется, это работает нормально.

Мои данные введены, и я пытаюсь применить wx.grid.GridCellBoolRenderer() в столбце 8.

Первые два звонка в:

    grid.SetCellRenderer(row_idx, col_idx, renderer)
 

на самом деле, похоже, возвращается нормально, но затем в третий раз по циклу (просто повторяя количество строк, вызывая SetCellRenderer() для каждой ячейки в столбце), я получаю сообщение об ошибке:

 RuntimeError: wrapped C/C   object of type GridCellBoolRenderer has been deleted
 

(Просто раскомментируйте вызов в TestFrame классе, чтобы запустить SetColumnRenderers() метод.)

Я действительно не понимаю, почему мой визуализатор будет удален здесь? Есть ли что-то принципиально неправильное в моем подходе?

Я хочу применить разные виды визуализации ячеек к разным столбцам, но здесь я как бы падаю лицом вниз… Помочь?

(Локально я использую Python 3.7.3, а это wxPython Phoenix, версия=4.1.1)