ListCtrl设置字符串项

时间:2013-03-29 11:00:59

标签: python list wxpython

我有一个字符串数组['Hello World', 'Goodbye Universe', Let's go to the mall'],我想放入一个ListCtrl,我的代码只打印出数组中每个索引的某些字母。 我的代码:

self.list = wx.ListCtrl(panel,size=(1000,1000))
self.list.InsertColumn(0,'Rules')
for i in actualrules:
    self.list.InsertStringItem(sys.maxint, i[0])

actualrules是数组

1 个答案:

答案 0 :(得分:1)

您的列表actualrules在其中一个字符串中有一个引号,因此您应该用双引号将其括起来,如下所示。

        actualrules = ['Hello World', 'Goodbye Universe',
                   "Let's go to the mall"]

在你的for循环中,我成为了列表中的每个项目,然后你只通过第一个字母来做[0]

以下是列表的工作示例

import sys
import wx


class TestFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        super(TestFrame, self).__init__(*args, **kwargs)

        actualrules = ['Hello World', 'Goodbye Universe',
                       "Let's go to the mall"]

        panel = wx.Panel(self)
        self.list = wx.ListCtrl(panel, size=(1000, 1000), style=wx.LC_REPORT)
        self.list.InsertColumn(0, 'Rules')
        for i in actualrules:
            self.list.InsertStringItem(sys.maxint, i)

        pSizer = wx.BoxSizer(wx.VERTICAL)
        pSizer.Add(self.list, 0, wx.ALL, 5)
        panel.SetSizer(pSizer)

        vSizer = wx.BoxSizer(wx.VERTICAL)
        vSizer.Add(panel, 1, wx.EXPAND)
        self.SetSizer(vSizer)


if __name__ == '__main__':
    wxapp = wx.App(False)
    testFrame = TestFrame(None)
    testFrame.Show()
    wxapp.MainLoop()