Организация пользовательских заголовков в ListCtrl или другой виджет в wxPython

Я написал код для ListCtrl в wxPython:

Управление списком

...
self.list_ctrl = wx.ListCtrl(panel, size=(-1,150), style=wx.LC_REPORT|wx.BORDER_SUNKEN)
self.list_ctrl.InsertColumn(0, 'Name')
self.list_ctrl.InsertColumn(1, 'Old value')
self.list_ctrl.InsertColumn(2, 'New value')
self.list_ctrl.InsertColumn(3, 'Old percent')
self.list_ctrl.InsertColumn(4, 'New percent')
...

Но я хочу получить ListCtrl (или другой виджет) со следующей организацией заголовков:

Организация заголовков

Я думаю, что это трудно решить эту проблему с помощью ListCtrl, может быть, использовать другой виджет в wxPython?

2 ответа

Решение

Как я указывал в списке рассылки wxPython, где вы кросс-постили, ListCtrl не предлагает эту возможность. Вы можете сделать это с помощью элемента управления Grid (wx.grid.Grid), используя методы расширения столбцов и собственные алгоритмы сортировки. Вы можете взломать UltimateListCtrl, чтобы сделать это, поскольку это чистый Python вместо обернутого объекта C++, но это будет нетривиальный патч / хак.

Вероятно, лучшим подходом было бы свернуть свой собственный виджет. Есть примеры пользовательских виджетов в вики wxPython, демо wxPython и в их списке рассылки.

Ну, вы можете сделать свой собственный виджет, используя виджет wx.html.HtmlWindow. Вот пример ссылки: http://zetcode.com/wxpython/advanced/.

Другие вопросы по тегам