繁体   English   中英

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行开始的值,但行和cols从零开始。 同样,与其使用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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM