Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 23, 2008 18:51:37

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

у меня есть 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



Отредактировано (Окт. 23, 2008 18:56:41)

Офлайн

#2 Окт. 23, 2008 19:09:49

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

wx.LC_SORT_ASCENDING и wx.LC_SORT_DESCENDING не подходят?
при добавлении элементов, они должны отсортироваться



Офлайн

#3 Окт. 23, 2008 19:17:41

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

неее.. мне надо, чтоб когда нажимаеш на заголовок колонки оно сортировалось.. как обычно сортируется…



Офлайн

#4 Окт. 23, 2008 20:16:30

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

давно не юзал 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()
#сортировка….



Офлайн

#5 Окт. 23, 2008 20:29:58

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

ууххх… йопт(( эт оч громоздко выходит…я так понял в сортировке надо взять все значения в таблице в список списков значений строк, далее сравнивать нужную по счету колонку с другими.. и при этом сортировать не списки а колонки.. а потом еще это все обратно забить в таблицу(( а как то по проще идей нету,? ^_^



Офлайн

#6 Окт. 23, 2008 21:38:44

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

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

У меня все проще было, так как в базе лежало, поэтому я просто добавлял к запросу выборки сортировку и усе.



Отредактировано (Окт. 23, 2008 21:47:29)

Офлайн

#7 Окт. 23, 2008 22:52:29

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.ListCtrl сортировка

блин…я теперь тоже так думаю)) чето мне сначала страшным это показалось)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version