wxComboBox列表列表问题

时间:2014-06-12 12:02:17

标签: python-2.7 combobox wxpython

我在wxPython的wxComboBox列表中使用了一个问题。

使用以下列表列表:

    aps = [['AP0','AP1','AP2','AP3','AP4'],
           ['AP2'],
           ['AP1'],
           ['AP1','AP2','AP3'],
           ['AP1'],
           ['AP1','AP2'],
           ['AP1'],
           ['AP1'],
           ['AP1'],
           ['AP1'],
           ['AP1','AP2','AP3'],
           ['AP1_N','AP2_E','AP3_S','AP4_W'],
           ['AP1','AP2','AP3']]

    apOps = aps[11][3]
    print apOps

    self.apInput = wx.ComboBox(panel1, -1, choices = apOps)

使用此示例打印命令按预期输出“AP4_W”。然而,ComboBox将每个字符拆分为其选项列表中的项目。

如果我只使用列表中的一个项目,例如

apOps = aps[0]

我得到了整个第一个列表作为预期和想要的选项。 我还可以让其他一个项目列表正确显示,例如

apOps = aps[1]

在ComboBox中正确打印并显示为“AP2”

我不确定是否有一种不同的方式我应该调用ComboBox的项目或者我究竟做错了什么。

一如既往的帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

wxPython正在将你的字符串转换成一个列表。你可以通过这样做自己做同样的事情:

print list(apOps)

如果您不希望这种情况发生,那么您应该将创建wx.ComboBox的代码更改为如下所示:

self.apInput = wx.ComboBox(self, choices=[apOps])

这将创建一个只包含字符串的项目列表。如果您希望字符串也是默认选项,则可以执行以下操作:

self.apInput = wx.ComboBox(self, value=apOps, choices=[apOps])

希望有所帮助!