код на wxpython не работает
Этот код
import wx,os
class FileManager(wx.Panel):
def __init__(self,*args, **kwargs):
super().__init__(*args, **kwargs)
self.l=list(os.listdir(r'C:\Windows\System32'))
self.list=wx.ListBox(self,choices=self.l)
self.sizer=wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.list,1,wx.EXPAND|wx.ALL)
self.SetSizer(self.sizer)
class Frame(wx.Frame):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.top_splitter=Splitter(self)
self.top_splitter.SetMinimumPaneSize(150)
file_manager=FileManager(self.top_splitter)
control=Control(self.top_splitter,wx.TE_MULTILINE)
self.top_splitter.split_vertically(file_manager,control)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.top_splitter, 1, wx.EXPAND)
self.SetSizer(sizer)
class Splitter(wx.SplitterWindow):
def __init__(self,*args,**kw):
super().__init__(*args,**kw)
def split_vertically(self,first,second):
self.SplitVertically(first,second)
def split_horizontally(self,first,second):
self.SplitHorizontally(first,second)
class Control(wx.Panel):
def __init__(self,*args,**kw):
super().__init__(*args,**kw)
self.sizer=wx.BoxSizer()
self.sizer.Add(self)
self.SetSizer(self.sizer)
app = wx.App()
editor = Frame(None, title='wxPython')
editor.Show()
app.MainLoop()
Возвращает
Process returned 3221226525 (0xc000041d) execution time : 4.721 s
Для продолжения нажмите любую клавишу . . .
И не открывает окно. Как исправить?
Ответы (1 шт):
Автор решения: ioprst
→ Ссылка
В сайзер панели Control вы добавляете саму эту панель. Конечно же так делать нельзя.
Если убрать self.sizer.Add(self), программа запускается.