Как сохранить значения ListCtrl с PersistenceManager? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть wx.ListCTRL, который накапливает результаты тестов печати. Я хочу сохранить результаты при закрытии приложения, а затем перезагрузить прошлые результаты при повторном запуске приложения. Список определяется как:

self.test_list = wx.ListCtrl(panel, wx.ID_ANY, name="Tests", style=wx.LC_REPORT)
self.test_list.InsertColumn(0, "Accuracy")
self.test_list.InsertColumn(1, "Speed")
self.test_list.InsertColumn(2, "Duration")
self.test_list.InsertColumn(3, "Words")
self.test_list.InsertColumn(4, "User")
self.test_list.InsertColumn(5, "Timestamp")
self._persistence_manager.RegisterAndRestore(self.test_list)

Объект PersistenceManager определен как:

persistence_file = os.path.join(os.getcwd(), "typing_test.dat")
self._persistence_manager = pm.PersistenceManager.Get()
self._persistence_manager.SetPersistenceFile(persistence_file)
self._persistence_manager.SetManagerStyle(style=pm.PM_SAVE_RESTORE_TREE_LIST_SELECTIONS|pm.PM_PERSIST_CONTROL_VALUE)

Выполнение тестов добавляет данные в список следующим образом:

test_list.InsertItem(index, f"{results['accuracy']}%")
test_list.SetItem(index, 1, f"{results['speed']} WPM")
test_list.SetItem(index, 2, f"{results['duration'].seconds} seconds")
test_list.SetItem(index, 3, str(results['words']))
test_list.SetItem(index, 4, user_name)
test_list.SetItem(index, 5, results["timestamp"])
self.GetParent()._persistence_manager.Save(self.GetParent().test_list)

Наконец, в файле постоянства сохраняется следующее:

[Persistence_Options/ListCtrl]
[Persistence_Options/ListCtrl/Tests]
ColWidths=('list', '[80, 80, 80, 80, 80, 80]')
Selections=('list', '[1]')

Можно ли сделать так, чтобы значения в этом списке сохранялись, или только выделение и ширина?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...