我创建了一个wxpython接口和一个ListCtrl,并使用文本文件填充它,但我想从listCtrl中仅提取包含文本的行,同时保持其外观。 / p>
file.txt
0012
Hi how are you <-- edit
0013
he will be welcome to the other world <-- edit
0014
you have to help new member <-- edit
class MyFrame1 ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
bSizer1 = wx.BoxSizer( wx.HORIZONTAL )
self.m_panel3 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
self.m_panel3.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_SCROLLBAR ) )
bSizer4 = wx.BoxSizer( wx.VERTICAL )
self.m_listCtrl6 = wx.ListCtrl( self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_ALIGN_LEFT|wx.LC_REPORT )
bSizer4.Add( self.m_listCtrl6, 0, wx.ALL|wx.EXPAND|wx.SHAPED, 5 )
self.m_panel3.SetSizer( bSizer4 )
self.m_panel3.Layout()
bSizer4.Fit( self.m_panel3 )
bSizer1.Add( self.m_panel3, 1, wx.EXPAND |wx.ALL, 5 )
self.SetSizer( bSizer1 )
self.Layout()
self.m_statusBar1 = self.CreateStatusBar( 1, wx.STB_SIZEGRIP, wx.ID_ANY )
self.m_toolBar1 = self.CreateToolBar( wx.TB_HORIZONTAL, wx.ID_ANY )
self.m_tool_open = self.m_toolBar1.AddTool( wx.ID_Open, _(u"Open"), wx.Bitmap( u"document-open.png", wx.BITMAP_TYPE_ANY ), wx.NullBitmap, wx.ITEM_NORMAL, _(u"Abrir subtitulo"), _(u"Abrir un nuevo subtitulo"), None )
self.m_tool_save = self.m_toolBar1.AddTool( wx.ID_Save, _(u"Save"), wx.Bitmap( u"document-save.png", wx.BITMAP_TYPE_ANY ), wx.NullBitmap, wx.ITEM_NORMAL, _(u"Guardar proyecto"), _(u"Guardar subtitulo actual"), None )
self.m_toolBar1.Realize()
self.Centre( wx.BOTH )
# Connect Events
self.Bind( wx.EVT_TOOL, self.Abrir_Nuevo, id = self.m_tool_open.GetId() )
self.Bind( wx.EVT_TOOL, self.Save_Project, id = self.m_tool_save.GetId() )
def Abrir_Nuevo( self, event ):
self.m_listCtrl6.InsertColumn(0,"New Column", width=wx.LIST_AUTOSIZE)
nombre = open("file.txt")
nombre.close()
self.SetTitle(nombre.name)
for line in reversed(open("file.txt").readlines()):
self.m_listCtrl6.InsertItem(0, line.rstrip())
在
def Save_Project( self, event ):
item = self.m_listCtrl6.GetItemCount()
#TODO: item is the number of rows
for row in range(item):
itx = self.m_listCtrl6.GetItem(row,col=0)
tachable = itx.GetText()
if "" in tachable:
print("vacio")
print(tachable)
通过使用控制台,我要编辑包含文本的行。
for row in range(item):
itx = self.m_listCtrl6.GetItem(row,col=0)
tachable = itx.GetText()
目标是,在以下位置:self.m_listCtrl6.InsertColumn (1, "Edited Column 1", width = wx.LIST_AUTOSIZE)
添加已编辑的行,下面我将对其进行引用。看起来应该像 file.txt 一样。
0012
Hello, how are you Marco
0013
he Python language will be welcome to the other world
0014
you have to help a new member Marco