Найти - Пользователи
Полная версия: wx.ListCtrl сортировка
Начало » GUI » wx.ListCtrl сортировка
1
124bit
у меня есть wx.ListCtrl в котором постоянно что то меняется. Мне надо сделать так, чтоб его можно было в любое время сортировать, но я не очень понимаю концепцию сортировки..
я создаю класс
class SortedListCtrl(wx.ListCtrl, ColumnSorterMixin):
в ините которого
def __init__(self,parent):
wx.ListCtrl.__init__(self,parent, 8,pos=(10,70),size=(400,200), style=wx.LC_REPORT |wx.LC_HRULES | wx.LC_VRULES)
ColumnSorterMixin.__init__(self, 4)
self.itemDataMap = {}
и в котором есть функция
def GetListCtrl(self):
return self
далее его создаю и из потоков в нем постоянно что то меняется.

я не очень понимаю, что такое self.itemDataMap, но ставлю его ={} так как изначально у меня listctrl пустой… правильно,?
далее мне надо что то сделать, а именно как я понял перед сортировкой задать self.my_list_ctrl.SetItemData( ) .. а что это такое, что оно делает, где его задавать и какие ему кидать параметры - понять не могу(

как реализовать то что я хочу,? :D
hellslade
wx.LC_SORT_ASCENDING и wx.LC_SORT_DESCENDING не подходят?
при добавлении элементов, они должны отсортироваться
124bit
неее.. мне надо, чтоб когда нажимаеш на заголовок колонки оно сортировалось.. как обычно сортируется…
shiza
давно не юзал WX, сейчас заглянул в свой старый проект, где есть сортировка. Там у меня сделано довольно тупо, но мож поможет в крайнем случае:

Обычный self.lc = wx.ListCtrl()
И есть привязка клика по колонке к функции сортировки и перерисовки
self.lc.Bind(wx.EVT_LIST_COL_CLICK, self.sort_click, self.lc)

def sort_click(self, evt):
col = evt.GetColumn()
#сортировка….
124bit
ууххх… йопт(( эт оч громоздко выходит…я так понял в сортировке надо взять все значения в таблице в список списков значений строк, далее сравнивать нужную по счету колонку с другими.. и при этом сортировать не списки а колонки.. а потом еще это все обратно забить в таблицу(( а как то по проще идей нету,? ^_^
shiza
124bit
ууххх… йопт(( эт оч громоздко выходит…я так понял в сортировке надо взять все значения в таблице в список списков значений строк, далее сравнивать нужную по счету колонку с другими.. и при этом сортировать не списки а колонки.. а потом еще это все обратно забить в таблицу(( а как то по проще идей нету,? ^_^
Я думаю, что это можно написать примерно в 10 строк =)

У меня все проще было, так как в базе лежало, поэтому я просто добавлял к запросу выборки сортировку и усе.
124bit
блин…я теперь тоже так думаю)) чето мне сначала страшным это показалось)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB