如何强制我的ObjectListView刷新新数据的列宽?

时间:2012-11-12 12:56:36

标签: python wxpython

我正在使用ListCtrl子类ObjectListView,我遇到的问题是,在我将一些数据设置到列表后,所有列都设置为其最小宽度,直到我调整窗口大小它们会弹出正确的宽度。更具体地说,我的一个列被设置为调整大小以填充剩余空间,并且在我调整窗口大小之前它不会这样做。

我该如何解决这个问题?

(我在OSX 10.8.1 Mountain Lion上使用wxPython 2.9)


self.results_list = ObjectListView(self, style=wx.LC_REPORT)
self.results_list.SetColumns([
    ColumnDefn('Street name', 'left', valueGetter='streetname',
               minimumWidth=150),
    ColumnDefn('House number', 'left', valueGetter='housenumber',
               minimumWidth=100),
    ColumnDefn('Letter', 'left', valueGetter='letter',
               minimumWidth=75),
    ColumnDefn('Postal code', 'right', valueGetter='postalcode',
               minimumWidth=120),
    ColumnDefn('City', 'left', valueGetter='city', minimumWidth=100,
               isSpaceFilling=True),
])

1 个答案:

答案 0 :(得分:1)

我会尝试在小部件的父级上调用Layout。有时候是分级器,面板或框架本身。我经常尝试各自,直到找到有效的那个。这对我在Windows和(我认为)Ubuntu上都有用。