Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2009 16:09:38

tammat
От:
Зарегистрирован: 2008-02-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с заполнением wx.TreeCtrl из SQL

Есть БД с таблицей Tree c полями ID, Parent_ID, Name

После выполнения запроса получаю

_Tree=[,,,,,]

Не могу разобраться как эти данные засунуть в TreeCtrl с помощью рекурсии.
Спасибо



Офлайн

#2 Окт. 26, 2009 18:13:51

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Помогите с заполнением wx.TreeCtrl из SQL

tammat
Не могу разобраться как эти данные засунуть в TreeCtrl с помощью рекурсии.
Именно рекурсией? ИМХО не слишком эффективно в данном случае - структура плоская, проще на временном словаре создаваемые ноды хранить. Но держите, примерно так:
import  wx

class TestFrame(wx.Frame):

def __init__(self):
wx.Frame.__init__(self, None, -1, "Test", size=(300, 300))
self.tree = wx.TreeCtrl(self)
_Tree = [[1,0,"Root"],[2,1,"Level_10"],[3,1,"Level11"],
[4,1,"Level12"],[5,2,"Level20"],[6,5,"Level30"]]

def branch(node, id):
for x in filter(lambda x: x[1] == id, _Tree):
if node:
new_node = self.tree.AppendItem(node, x[2])
else:
new_node = self.tree.AddRoot(x[2])
self.tree.SetPyData(new_node, x[0])
branch(new_node, x[0])

self.tree.Freeze()
branch(None, 0)
self.tree.Thaw()

if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show(True)
app.MainLoop()



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Окт. 27, 2009 09:29:10

tammat
От:
Зарегистрирован: 2008-02-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с заполнением wx.TreeCtrl из SQL

Огромное спасибо!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version