2011-05-10 38 views
0
import wx 
import sqlite3 as lite 

class MyFrame(wx.Frame): 
    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(450, 350)) 

     vbox = wx.BoxSizer(wx.VERTICAL) 

     self.tree = wx.TreeCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT) 
     self.root = self.tree.AddRoot('Noktalar') 

     vbox.Add(self.tree, 1, wx.EXPAND) 

     con = lite.connect('noktalar.sdb') 
     #cur = con.cursor() #removed 
     cur2 = con.cursor() #added 

     gruplar=cur.execute("select * from gruplar") 

     for grup in gruplar: 
      parentItem = self.tree.AppendItem(self.root, grup[1]) 
      deyim="""select * from noktalar where noktalar.grup_id="""+str(grup[0]) 
      #noktalar=cur.execute(deyim) #removed 
      noktalar=cur2.execute(deyim) #added 
      for nokta in noktalar: 
       self.tree.AppendItem(parentItem, nokta[1]) 

     con.commit() 
     cur.close() 
     cur2.close() #added 
     con.close() 

     self.SetSizer(vbox) 
     self.Centre() 




class MyApp(wx.App): 
    def OnInit(self): 
     frame = MyFrame(None, -1, 'treectrl.py') 
     frame.Show(True) 
     self.SetTopWindow(frame) 
     return True 

嗨建設TREECTRL,廣東話迭代數據庫在wxPython

我需要從1噸數據庫建立TREECTRL。但只運行一次迭代。 我的意思是在控件中只有一個父項和其中的子項。 爲什麼不構建其他父項,即使它們存在於數據庫中?

在此先感謝。

解決:

我添加了另一個光標 「noktalar」。

回答

0

你確定gruplar和noktalar變量是可迭代的嗎?添加一些行來打印這些內容,並確保你正在迭代某些內容。否則,代碼對我來說很合適。

+0

當我更改代碼像這樣:gruplar:print grup [1],它是可迭代的。我可以看到所有父項目。 – Shansal 2011-05-11 05:17:20