wxPython wx.ListCtrl с конкретными данными
Я хочу добавить в wx.ListCtrl из элементов wxPython, которые имеют определенный идентификатор, связанный с ними. Как я могу этого достичь? На самом деле, как вы связываете какие-либо данные с конкретным элементом ListCtrl?
2 ответа
Я хотел бы создать словарь, в котором ключи являются идентификаторами, а затем использовать SetItemData ListCtrl, чтобы связать ключ с элементом управления списком. Затем вы можете использовать метод GetItemData для получения идентификатора и использовать его со своим словарем для получения данных.
Или вы могли бы использовать ListCtrlPyDataMixin
что сделало бы это немного проще:
Лично мне действительно нравится использовать ObjectListView вместо прямого wx.ListCtrl. Вот учебник о том, как это работает:
И, как упоминалось @nepix32, вы также можете использовать wx.DataViewCtrl, если у вас есть wxPython 2.9 или новее.
В основном вы можете связать long
с wx.ListCtrl
Методы.SetItemData и .GetItemData (например, для row_id
из базы данных.
Однако, если у вас довольно недавний wxPython (>= 2.9), вам лучше справиться с wx.DataViewCtrl
, Он более мощный и простой в программировании, чем ListCtrl, и он приносит PyDataViwModel
с ним, что позволяет сопоставить объекты с элементами просмотра.
Ближе к ListCtrl находится wx.DataViewListCtrl
что очень похоже на wx.ListCtrl
в объеме функции.