我使用复选列表框作为筛选器,当列表中有整数时无法使其工作。我已经尝试转换为字符串,但仍然得到一个错误。对如何让它工作有什么建议吗?
list1工作正常list2 =索引0处的项具有类型'int‘,但需要字节或字符串序列testlist1和testlist2: CheckListBox():参数与任何重载调用都不匹配:重载1:参数5具有意外的类型'str’重载2:参数太多
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"Multi-mode testing hot patch tool",size = (800,600))
panel = wx.Panel(self)
list1 = ["one","two" ,"three"]
list2 = [1, 2, 3]
testlist1 = ','.join(map(str, list2))
testlist2 = ''.join(str(e) for e in list2)
self.listbox3 = wx.CheckListBox(panel,-1,(300,80),(200, 60),list1)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()发布于 2021-07-28 14:42:47
您没有正确构建您的列表。
看一下打印出您的构造的结果,然后执行下面的testlist3:
1,2,3
123
['1', '2', '3']
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"Multi-mode testing hot patch tool",size = (800,600))
panel = wx.Panel(self)
list1 = ["one","two" ,"three"]
list2 = [1, 2, 3]
testlist1 = ','.join(map(str, list2))
print(testlist1)
testlist2 = ''.join(str(e) for e in list2)
print(testlist2)
testlist3 = [str(i) for i in list2]
print(testlist3)
self.listbox3 = wx.CheckListBox(panel,-1,(300,80),(200, 60),testlist3)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()

https://stackoverflow.com/questions/68554400
复制相似问题