【问题标题】:wxpython Checklistbox with integerswxpython 带有整数的 Checklistbox
【发布时间】:2021-07-28 04:27:26
【问题描述】:

我使用一个复选框作为过滤器,当列表中有整数时,它无法工作。我尝试转换为字符串,但仍然出现错误。关于如何让它发挥作用的任何建议?

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()

【问题讨论】:

    标签: python wxpython checklistbox


    【解决方案1】:

    你没有正确地构建你的列表。

    看看打印出你的构造的结果,然后看看下面的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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      相关资源
      最近更新 更多