そのため、listctrl を作成して sizer に追加しました。
import wx
class myFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None)
panel1=wx.Panel(self)
self.mainSizer=wx.BoxSizer(wx.VERTICAL)
panel1.SetSizer(self.mainSizer)
self.button1=wx.Button(panel1, label='xxx')
self.list1=wx.ListCtrl(panel1, size=(300,-1), style=wx.LC_REPORT|wx.LC_VRULES)
self.mainSizer.Add(self.button1, 0, wx.CENTER)
self.mainSizer.Add(self.list1, 1, wx.ALL|wx.CENTER, 20)
self.button1.Bind(wx.EVT_BUTTON, self.onButton)
def onButton(self, pliki):
self.list1.InsertColumn(0, 'col1')
self.list1.InsertColumn(1, 'col2')
self.list1.InsertColumn(2, 'col3')
self.list1.SetColumnWidth(0, 150)
self.list1.SetColumnWidth(1, 150)
self.list1.SetSize( ( sum([self.list1.GetColumnWidth(i) for i in (0,1,2)]) , -1) )
x=wx.App()
y=myFrame().Show()
x.MainLoop()
ボタンを押すと、データがリストに反映され、列のサイズを変更したい (挿入されたデータから計算される)。しかし、ウィンドウのサイズを変更すると、リストのサイズは以前のサイズに戻ります(作成時に宣言されました)。どうすれば回避できますか?