Here's a runnable example that does what you want.
import wx
class ListTest(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(380, 230))
panel = wx.Panel(self, -1)
#Create a list
self.list = wx.ListCtrl(panel, -1, style=wx.LC_REPORT)
self.list.InsertColumn(0, 'File-path', width=140)
#Do the layout
hbox = wx.BoxSizer(wx.HORIZONTAL)
hbox.Add(self.list, 1, wx.EXPAND)
panel.SetSizer(hbox)
self.Centre()
self.Show(True)
#Create Menu
menubar = wx.MenuBar()
file = wx.Menu()
self.loadFile = wx.MenuItem(file, -1, '&Open\tCtrl+L', 'Open a file')
file.AppendItem(self.loadFile)
menubar.Append(file, '&File')
self.SetMenuBar(menubar)
self.Bind(wx.EVT_MENU, self.on_openFile)
def on_openFile(self, evt):
loadFileDlg = wx.FileDialog(
self, message="Open File",
defaultDir="",
defaultFile="",
style=wx.OPEN | wx.CHANGE_DIR
)
#If the user clicked the open file button
if loadFileDlg.ShowModal() == wx.ID_OK:
#Get the file path
path = loadFileDlg.GetPath()
loadFileDlg.Destroy()
#Call your file analysis method or whatever here
#Create a message dialog
fileAnalysedDlg = wx.MessageDialog(self, "File Has Been Analysed", "File Has Been Analysed", wx.OK)
fileAnalysedDlg.ShowModal()
fileAnalysedDlg.Destroy()
#Add filepath to list
self.list.InsertStringItem(0, path)
app = wx.App()
ListTest(None, 'list test')
app.MainLoop()