Ich programmiere gerade einen File-Browser und werde wahrscheinlich noch einige Fragen an euch haben. Hier meine erste

Also ich bin soweit, dass ich alle Dateien eines Ordners in einer Liste anzeigen kann.Nun will ich, dass sich die Größe der Liste beim Ändern der Fenstergröße anpasst.
Ich habe es folgendermaßen geschafft, jedoch flimmert der Fensterinhalt beim Vergrößern/Verkleinern unheinmlich.
Gibt es einen anderen Weg, der für das Programm weniger aufwendig ist und somit das Flimmern verhindert werden kann?
Code: Alles auswählen
import wx
import os
import glob
class MainList(wx.ListCtrl):
def __init__(self, parent, id):
wx.ListCtrl.__init__(self, parent, id, size=(500,400), style=wx.LC_ICON | wx.LC_AUTOARRANGE)
self.il = wx.ImageList(32, 32, True)
for icon in glob.glob("icons/*.png"):
bmp = wx.Bitmap(icon, wx.BITMAP_TYPE_ANY)
self.il.Add(bmp)
self.SetImageList(self.il, wx.IMAGE_LIST_NORMAL)
j = 1
for file in os.listdir("."):
(name, ext) = os.path.splitext(file)
if os.path.isdir(file):
self.InsertImageStringItem(j, file, 0)
elif ext == ".py":
self.InsertImageStringItem(j, file, 1)
else:
self.InsertImageStringItem(j, file, 2)
j +=1
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Filer")
self.panel = wx.Panel(self)
self.panel.SetBackgroundColour("White")
sizer = wx.GridSizer(1,0)
self.panel.SetSizer(sizer)
self.listctrl = MainList(self.panel, -1)
sizer.Add(self.listctrl)
sizer.Fit(self)
self.Bind(wx.EVT_SIZE, self.OnReSize)
def OnReSize(self, event):
size = self.GetSize()
self.panel.SetSize(size)
self.listctrl.SetSize(size)
app = wx.PySimpleApp()
frame = MainFrame()
frame.Show()
app.MainLoop()