Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python wx.ListBox中的字符串格式_Python_Linux_Listbox_String Formatting - Fatal编程技术网

Python wx.ListBox中的字符串格式

Python wx.ListBox中的字符串格式,python,linux,listbox,string-formatting,Python,Linux,Listbox,String Formatting,我是Python新手,我想在wx.ListBox中显示特定格式的字符串 例如:正确对齐,但显示如下 代码: fileName = fileName + str(" " * (38 - len(fileName))) self.displayList.append( " %02d %s %0.2fKB" % (index+1, fileName, fileSize )) 当我打印self.displayList时,它以正确的对齐方式显示 让我知道我错在哪里,或者

我是Python新手,我想在
wx.ListBox
中显示特定格式的字符串

例如:正确对齐,但显示如下

代码:

fileName = fileName + str(" " * (38 - len(fileName)))
self.displayList.append( "   %02d             %s  %0.2fKB" % (index+1, fileName, fileSize ))
当我打印
self.displayList
时,它以正确的对齐方式显示

让我知道我错在哪里,或者应该用什么其他方法来正确对齐显示字符串

编辑

首先谢谢你的回复

通过应用(Sundar Nataraj)解决方案,输出与您提到的相同,但其在控制台上,而在wx.ListBox中,格式也不正确

见下图

我只是将displayList作为参数传递

self.autoNcListbox = wx.ListBox(self.autoProgListPanel, wx.ID_ANY, wx.Point( 0, 25), wx.Size( 512, 510 ), self.displayList, wx.RAISED_BORDER)
这样试试看

index=[1,2,3,4]
text=['animal','gv','asdfasdfasd','adfasdfasdf']
size=['1kb','2kb','3kb','4kb']
displaylist=[]

for i in zip(index,text,size):
    s=""
    for j in range(0,3):
        s +='{0:{fill}{align}16}'.format(i[j], fill=' ', align='<')

    print s
    displaylist.append(s)

for i in displaylist:
    print i
编辑:


您可以添加代码示例,说明如何在页面底部的wxlist框中显示您的mixin。。你有没有尝试过我已经研究过的,但没有找到我问题的解决方案…只是在编辑后尝试代码没有解决问题…:(查看问题的编辑部分。
1                animal           1kb             
2                gv               2kb             
3                asdfasdfasd      3kb             
4                adfasdfasdf      4kb  
import wx
import sys
from wx.lib.mixins.listctrl import ListCtrlAutoWidthMixin


index=[1,2,3,4]
text=['animal','gv','asdfasdfasd','adfasdfasdf']
size=['1kb','2kb','3kb','4kb']
displaylist=[]
for i,j,l in zip(index,text,size):
    displaylist.append((i,j,l))




class AutoWidthListCtrl(wx.ListCtrl, ListCtrlAutoWidthMixin):
    def __init__(self, parent):
        wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT)
        ListCtrlAutoWidthMixin.__init__(self)


class Actresses(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(380, 230))

        hbox = wx.BoxSizer(wx.HORIZONTAL)

        panel = wx.Panel(self, -1)

        self.list = AutoWidthListCtrl(panel)
        self.list.InsertColumn(0, 'index', width=140)
        self.list.InsertColumn(1, 'text', width=130)
        self.list.InsertColumn(2, 'filesize', wx.LIST_FORMAT_RIGHT, 90)

        for i in displaylist:
            index = self.list.InsertStringItem(sys.maxint, str(i[0]))
            self.list.SetStringItem(index, 1, i[1])
            self.list.SetStringItem(index, 2, i[2])

        hbox.Add(self.list, 1, wx.EXPAND)
        panel.SetSizer(hbox)

        self.Centre()
        self.Show(True)

app = wx.App()
Actresses(None, -1, 'file')
app.MainLoop()