使用Python wxWidgets wxlistbox时字符串中制表符的替代方法

使用Python wxWidgets wxlistbox时字符串中制表符的替代方法,python,wxpython,wxwidgets,Python,Wxpython,Wxwidgets,如本文所述: 请注意,列表框项目文本中的当前制表符在所有平台下的处理方式都不一致,因此应将其替换为空格,以便在所有位置正确显示字符串。列表框根本不支持任何其他控件字符 到目前为止,根据我在Windows 7中使用Python 2.7 32位的经验,在wxListBox选择的字符串中使用\t没有任何效果;果然 我有数据库中的一堆行,我有多个列要在wxListBox中的一行中显示(最终用于选择一行或多行)。目前,我使用建议的空格作为字符串中值之间的分隔符。但是,这并不理想,因为列的长度是可变的 是否

如本文所述:

请注意,列表框项目文本中的当前制表符在所有平台下的处理方式都不一致,因此应将其替换为空格,以便在所有位置正确显示字符串。列表框根本不支持任何其他控件字符

到目前为止,根据我在Windows 7中使用Python 2.7 32位的经验,在wxListBox选择的字符串中使用\t没有任何效果;果然

我有数据库中的一堆行,我有多个列要在wxListBox中的一行中显示(最终用于选择一行或多行)。目前,我使用建议的空格作为字符串中值之间的分隔符。但是,这并不理想,因为列的长度是可变的

是否有一个不是简单分隔符的\t替代方法?这里的要点是将每行的所有列都整齐地显示出来,即

    column1        value1            value2
    column442142   values24234234    val2
而不是

   column1        value1        value2
   column442142        values24234234        val2
我想到了wxGrid,但我认为这对我不起作用,因为我不想在一行中选择特定的单元格(我似乎找不到禁用该功能的函数),我只希望用户能够选择一行或多行。

我的建议是用于简单的多列数据显示,或者如果您需要更多功能

print "    4 whitespaces replace a tab"

print "%20s"%some_string_padded_to_20_chars
FWIW您可以与
wxGridSelectRows
参数一起使用来禁用单元格选择,但是
wxGrid
可能仍然不是用于此类操作的最佳控件

有关不同控件的简要摘要,请参阅