0

文字列の配列があり['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 は配列です

4

1 に答える 1

1

リスト actualrules には、文字列の 1 つに一重引用符が含まれているため、以下に示すように二重引用符で囲む必要があります。

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

あなたの for ループでは、 i がリストの各項目になり、 i[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()
于 2013-03-29T14:32:36.043 に答える