wxPython 使用 while 循环将列表添加到网格
wxPython adding list to grid with while loop
我正在尝试将列表输入到网格中,但每当我 运行 它时,我都会收到此错误:SetValue():wxGridStringTable 中的行或列索引无效。如果这很简单,我很抱歉,因为我最近才开始学习 python。
代码:
import wx
import wx.grid
class main(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
items = ["milk", "cherries", "soup"]
total = len(items)
grid = wx.grid.Grid(self)
grid.SetRowLabelSize(0)
grid.SetColLabelSize(0)
grid.CreateGrid(total, 1)
listItem = 0
while listItem < total:
grid.SetCellValue(listItem + 1, 1, items[listItem])
listItem += 1
if __name__ == "__main__":
app = wx.App(False)
frame = main()
frame.Show()
app.MainLoop()
代码试图设置从第 1 行第 1 列开始的值,但行和列是从零开始的。
此外,与其使用 while 循环,不如使用带有枚举的 for 循环来获取项目的索引。
import wx
import wx.grid
class main(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
items = ["milk", "cherries", "soup"]
total = len(items)
grid = wx.grid.Grid(self)
grid.SetRowLabelSize(0)
grid.SetColLabelSize(0)
grid.CreateGrid(total, 1)
for index, value in enumerate(items):
grid.SetCellValue(index, 0, value)
if __name__ == "__main__":
app = wx.App(False)
frame = main()
frame.Show()
app.MainLoop()
我正在尝试将列表输入到网格中,但每当我 运行 它时,我都会收到此错误:SetValue():wxGridStringTable 中的行或列索引无效。如果这很简单,我很抱歉,因为我最近才开始学习 python。
代码:
import wx
import wx.grid
class main(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
items = ["milk", "cherries", "soup"]
total = len(items)
grid = wx.grid.Grid(self)
grid.SetRowLabelSize(0)
grid.SetColLabelSize(0)
grid.CreateGrid(total, 1)
listItem = 0
while listItem < total:
grid.SetCellValue(listItem + 1, 1, items[listItem])
listItem += 1
if __name__ == "__main__":
app = wx.App(False)
frame = main()
frame.Show()
app.MainLoop()
代码试图设置从第 1 行第 1 列开始的值,但行和列是从零开始的。 此外,与其使用 while 循环,不如使用带有枚举的 for 循环来获取项目的索引。
import wx
import wx.grid
class main(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
items = ["milk", "cherries", "soup"]
total = len(items)
grid = wx.grid.Grid(self)
grid.SetRowLabelSize(0)
grid.SetColLabelSize(0)
grid.CreateGrid(total, 1)
for index, value in enumerate(items):
grid.SetCellValue(index, 0, value)
if __name__ == "__main__":
app = wx.App(False)
frame = main()
frame.Show()
app.MainLoop()