2013-03-25 32 views
0

我正在使用wxPython的wx.ListCtrl来显示一个表。对于每一列,我使用InsertImageStringItem方法插入一个新行并使用SetStringItem添加其他列。在InsertImageStringItem方法中,我将-1用于图像索引,因此它不应在第一列中显示任何图标。这适用于Mac OS X.但在Windows上,第一列总是显示图像索引为0的图标。wx.ListCtrl总是在Windows上显示图标

任何人都知道问题是什么?

回答

0

由于您告诉它您将插入一个窗口,Windows本机窗口小部件可能需要该图像。如果您不想在第一列中插入图像,则只需使用InsertStringItem。

编辑:

据罗宾邓恩的wxPython的创造者:

在Windows本地ListView控件有一个“功能”,如果你给 它的图像列表,然后它假定你会想要显示 项目的图像,所以它会自动为它们保留空间。一个 解决方法是将所有列向右移动, 因此第一列除了为图像保留的空间之外没有任何内容。然后,您可以将该列的宽度设置为零。

来源:http://wxpython-users.1045709.n5.nabble.com/wx-ListCtrl-and-its-image-list-td2315539.html

+0

其实,我用的是InsertStringItem在第一。 (我需要在其他列中添加图标)。但它总是在Windows的第一列显示图标。我认为它默认使用索引0,所以我改为使用InsertImageStringItem并手工使用-1。但是它仍然显示索引0的图标。 –

+0

我在wxPython用户组中给我的答案添加了一些进一步的解释 –