Как печатать только тексты из ListCtrl в WxPython - PullRequest
0 голосов
/ 07 апреля 2019

Я создал интерфейс wxpython и ListCtrl и для его заполнения я использовал текстовый файл, но из listCtrl я хочу извлечь только те строки, которые содержат текст , но также сохраняют его внешний вид.


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

View reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...