鱼C论坛

 找回密码
 立即注册
查看: 3224|回复: 3

[已解决]tk选项框能的函数能灵活创建吗

[复制链接]
发表于 2022-11-17 17:09:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Checkbutton的选项如果选项多,用一个for来创建,但函数能不能不要一个选项框一个函数呢?我用的这个方法,虽然选项框的建立没问题,但函数那部分还是有很多问题,有什么好的办法吗



def ch(i):
        if ch_bu[i].get():
                print(num[i])




ch_bu=['ch_bu1', 'ch_bu2', 'ch_bu3']
text_list=['一楼', '二楼', '三楼']
che=['che1', 'che2', 'che3']
num=[1,2,3]

if __name__=="__main__":      
        for i in range(len(che)):
                ch_bu[i] = tk.IntVar()
                che[i] = tk.Checkbutton(root, text=text_list[i], variable=ch_bu[i], command=lambda:ch(i))
                che[i].place(x=1070, y=yy)
                yy += 20
最佳答案
2022-11-17 21:57:40
多选项时,可以用全局元组(或OOP的实例属性)来保存各选项的状态,然后用一个回调函数 来修改这个选项元组的状态。
比如 有三个选项框,设初始元组状态为(0,0,0),那么当 其中 1和2被选中了,函数就被触发两次,元组状态变为 (1,1,0)  ,据此来判断,你就可以执行其他相关操作 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-17 21:12:44 | 显示全部楼层
具体什么问题 呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-17 21:57:40 | 显示全部楼层    本楼为最佳答案   
多选项时,可以用全局元组(或OOP的实例属性)来保存各选项的状态,然后用一个回调函数 来修改这个选项元组的状态。
比如 有三个选项框,设初始元组状态为(0,0,0),那么当 其中 1和2被选中了,函数就被触发两次,元组状态变为 (1,1,0)  ,据此来判断,你就可以执行其他相关操作 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-30 18:48:16 | 显示全部楼层
问题是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表