2010-03-05 82 views
0

當我試圖運行下面的代碼。我收到錯誤。HyperTreeList索引超出範圍的問題?

import wx 
from wx.lib.agw.hypertreelist import HyperTreeList 

class test(wx.Frame): 

    def __init__(self): 

     wx.Frame.__init__(self, None, -1, title='htl', size=(955,550)) 

     self.CenterOnScreen() 

     self.tree = HyperTreeList(self, style = 
              wx.TR_FULL_ROW_HIGHLIGHT | 
wx.TR_HAS_VARIABLE_ROW_HEIGHT) 
     # create columns 
     self.tree.AddColumn("c1", 120) 
     self.tree.AddColumn("c1") 
     self.tree.AddColumn("c3", 120) 
     self.tree.AddColumn("c4") 
     self.tree.AddColumn("c5") 
     self.tree.AddColumn("c6") 
     self.tree.AddColumn("c7") 
     self.tree.AddColumn("c8") 
     self.tree.AddColumn("c9") 

     root = self.tree.AddRoot("root") 
     rc = self.tree.AppendItem(root, "child1") 
     rc2 = self.tree.AppendItem(root, "child2") 

     gauge = wx.Gauge(self.tree.GetMainWindow(), -1, 100, 
style=wx.GA_HORIZONTAL|wx.GA_SMOOTH) 
     gauge.SetValue(25) *#can we add this value over/within gauge 
control/window* 
     gauge.SetDimensions(100, 100, 100, 20) 

     self.tree.SetItemWindow(rc2, gauge, 7) #here is problem 

     self.tree.Expand(root) 
    #end def 

#end test 

class App(wx.App): 
    """Application class.""" 

    def OnInit(self): 
     self.frame = test() 
     self.frame.Show() 
     self.SetTopWindow(self.frame) 
     return True 

def main(): 
    app = App() 
    app.MainLoop() 

if __name__ == '__main__': 
    main() 

我得到這個錯誤

Traceback (most recent call last): 
    File "/root/workspace/test/src/test.py", line 61, in <module> 
    main() 
    File "/root/workspace/test/src/test.py", line 57, in main 
    app = App() 
    File "/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", 
line 7974, in __init__ 
    self._BootstrapApp() 
    File "/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", 
line 7548, in _BootstrapApp 
    return _core_.PyApp__BootstrapApp(*args, **kwargs) 
    File "/root/workspace/test/src/test.py", line 51, in OnInit 
    self.frame = test() 
    File "/root/workspace/test/src/test.py", line 39, in __init__ 
    self.tree.SetItemWindow(rc2, gauge, 7) 
    File 
"/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/lib/agw/hypertreelist.py", 
line 3282, in delegate 
    return getattr(self._main_win, method)(*args, **kwargs) 
    File 
"/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/lib/agw/hypertreelist.py", 
line 1414, in SetItemWindow 
    item.SetWindow(window, column) 
    File 
"/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode/wx/lib/agw/hypertreelist.py", 
line 1055, in SetWindow 
    self._wnd[column] = wnd 
IndexError: list assignment index out of range 

什麼,我做錯了什麼?

第二,我們可以在量表控制中添加百分數。

問候,

回答

0

幾個檢查站

  • 嘗試刪除wx.TR_FULL_ROW_HIGHLIGHT
  • 嘗試從self.tree.AddColumn("c1", 120) & self.tree.AddColumn("c3", 120)