gpt4 book ai didi

python - 最终列表ctrl : list index out of range

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:27 25 4
gpt4 key购买 nike

我正在wxPython中使用UltimateListCtrl。我可以在 Mouse vs Python 获取演示代码去工作,但是当我尝试适应它时。或者,甚至将其复制并粘贴到我的程序中,但失败了:

Traceback (most recent call last):
File "C:\Users\dgunter\Documents\GitHub\TimeJobTracker\timejob.py", line 346, in ArchiveJobs
jobwin = ArchiveJobWindow(self)
File "C:\Users\dgunter\Documents\GitHub\TimeJobTracker\timejob.py", line 87, in __init__
mylist.SetStringItem(0, 1, "Go")
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\agw\ultimatelistctrl.py", line 11366, in SetStringItem
self._mainWin.SetItem(info)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\agw\ultimatelistctrl.py", line 8802, in SetItem
line.SetItem(item._col, item)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\agw\ultimatelistctrl.py", line 4095, in SetItem
item = self._items[index]
IndexError: list index out of range

这是我正在使用的代码,您会注意到列表项是从我提供的链接复制的。我的实际数据是从数据库加载的,我只是忽略了该部分。

import wx
from wx.lib.agw import ultimatelistctrl as ULC

class ArchiveJobWindow(wx.Frame):
def __init__(self, parent):
super(ArchiveJobWindow, self).__init__(parent, title='Archive Unused Jobs', style=wx.CAPTION, size=(650,350))

self.parent = parent
self.panel = wx.Panel(self, wx.ID_ANY)
topSizer = wx.BoxSizer(wx.VERTICAL)
buttonSizer = wx.BoxSizer(wx.HORIZONTAL)

font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT)
boldfont = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT)
boldfont.SetWeight(wx.BOLD)
boldfont.SetPointSize(12)


mylist = ULC.UltimateListCtrl(self.panel, agwStyle=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES|wx.LC_SINGLE_SEL|0x0010, size=(200, 100))

info = ULC.UltimateListItem()
info._mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT | ULC.ULC_MASK_CHECK
info._image = []
info._format = 0
info._kind = 1
info._text = "Artist Name"
mylist.InsertColumnInfo(0, info)

info = ULC.UltimateListItem()
info._format = wx.LIST_FORMAT_RIGHT
info._mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT | ULC.ULC_MASK_FONT
info._image = []
info._text = "Title"
info._font = boldfont
mylist.InsertColumnInfo(1, info)

info = ULC.UltimateListItem()
info._mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT
info._format = 0
info._text = "Genre"
info._font = font
info._image = []
mylist.InsertColumnInfo(2, info)

mylist.InsertStringItem(0, "Newsboys")
mylist.SetStringItem(0, 1, "Go")
mylist.SetStringItem(0, 2, "Rock")

mylist.InsertStringItem(1, "Puffy")
mylist.SetStringItem(1, 1, "Bring It!")
mylist.SetStringItem(1, 2, "Pop")

mylist.InsertStringItem(2, "Family Force 5")
mylist.SetStringItem(2, 1, "III")
mylist.SetStringItem(2, 2, "Crunk")

mylist.SetColumnWidth(0, 150)
mylist.SetColumnWidth(1, 200)
mylist.SetColumnWidth(2, 100)


cancelbutton = wx.Button(self.panel, id=wx.ID_CANCEL)
Okbutton = wx.Button(self.panel, id=wx.ID_OK)




# panelSizer.Add(self.panel, 1, wx.EXPAND)
buttonSizer.AddStretchSpacer(6)
buttonSizer.Add(cancelbutton, 1, wx.ALIGN_RIGHT, 0)
buttonSizer.Add((20,0))
buttonSizer.Add(Okbutton, 1, wx.ALIGN_RIGHT, 0)
buttonSizer.AddStretchSpacer(1)

topSizer.AddStretchSpacer(2)
topSizer.Add(mylist)
topSizer.AddStretchSpacer(2)
topSizer.Add(buttonSizer, 1, wx.ALIGN_RIGHT, 0)
topSizer.Add((0,20))
# panelSizer.Add(topSizer, 1, wx.EXPAND)
self.panel.SetSizer(topSizer)


app = wx.App(False)
window = ArchiveJobWindow(None)
window.Show()


app.MainLoop()

欢迎任何建议。

谢谢

最佳答案

我不明白为什么,但如果你改变这一行它就会起作用:

mylist = ULC.UltimateListCtrl(self.panel, agwStyle=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES|wx.LC_SINGLE_SEL|0x0010, size=(200, 100))

对此:

mylist = ULC.UltimateListCtrl(self.panel, agwStyle=ULC.ULC_REPORT, size=(200, 100))

这是因为为了让示例运行,我必须添加 0x0010

我认为这些例子一定已经过时了。

关于python - 最终列表ctrl : list index out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33323139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com