我在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的项目或者我究竟做错了什么。
一如既往的帮助非常感谢!
答案 0 :(得分:1)
wxPython正在将你的字符串转换成一个列表。你可以通过这样做自己做同样的事情:
print list(apOps)
如果您不希望这种情况发生,那么您应该将创建wx.ComboBox的代码更改为如下所示:
self.apInput = wx.ComboBox(self, choices=[apOps])
这将创建一个只包含字符串的项目列表。如果您希望字符串也是默认选项,则可以执行以下操作:
self.apInput = wx.ComboBox(self, value=apOps, choices=[apOps])
希望有所帮助!