【问题标题】:wx.ListCtrl always display icon on Windowswx.ListCtrl 总是在 Windows 上显示图标
【发布时间】:2013-03-25 06:45:50
【问题描述】:

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

有谁知道问题出在哪里?

【问题讨论】:

    标签: wxpython listctrl


    【解决方案1】:

    Windows 原生小部件可能需要图像,因为您告诉它您要插入一个图像。如果您不想在第一列中插入图像,则只需使用 InsertStringItem。

    编辑:

    根据 wxPython 的创建者 Robin Dunn 的说法:

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

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

    【讨论】:

    • 其实我一开始是用InsertStringItem的。 (我需要在其他列中添加图标)。但它总是在 Windows 的第一列中显示图标。我认为它默认使用索引 0,所以我改为使用 InsertImageStringItem 并手动使用 -1。但它仍然显示索引 0 的图标。
    • 我对来自 wxPython 用户组的回答添加了一些进一步的解释
    猜你喜欢
    • 2012-01-20
    • 2012-12-03
    • 2016-02-15
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多