cdzjf 发表于 2024-8-18 20:44:18

关于tkinter的一个复选框的问题

有多个复选框,如果每个复选框都设置一条数据,还设置一个执行函数势必重复代码过多,如果复选框数量多就更可怕
我就想用个简单的来设置,其实设置好像还没有什么,显示也都正常,但出现了个问题,就是我的command=后面如果加了参数传到函数中,这个函数就没有被执行,无论你怎么执行都不会被执行,但如果把这个command=ch(i)换成command=ch,相应函数那边也当然不能有参数,这样整个函数的内容就会被执行,这是什么问题呢?要怎么样才能快速的设置一个多选框呢


    def ch(s):
      pp=(id)
      if ch_bu.get():
                id2.append(pp)
      else:
                id2.remove(pp)
      print(id2)
    id =
    id2 = id.copy()
    che = ['che1', 'che2', 'che3']
    ch_bu = ['ch_bu1', 'ch_bu2', 'ch_bu3']
    text_list = ["选择31", "选择2", "选择3"]
    yy = 100
    xx = 10
    for i in range(len(che)):
      ch_bu = tk.IntVar()
      che = tk.Checkbutton(root, text=text_list, variable=ch_bu, command=ch(i))
      che.place(x=xx, y=yy)
      xx += 85

某一个“天” 发表于 2024-8-18 20:44:19

command不能有参数,加上lambada才行{:10_256:}

cdzjf 发表于 2024-8-19 15:23:14

某一个“天” 发表于 2024-8-18 20:44
command不能有参数,加上lambada才行

不过,这种做法不可行,不知道有什么好的办法可以批量生成复选框
页: [1]
查看完整版本: 关于tkinter的一个复选框的问题