如何在Tkinter中实现复选框勾选时执行指定函数?
解决方案
你只需要修改Start按钮的command逻辑,先固定执行addchrome(),再根据复选框的状态决定是否执行CreateWallet(),具体有两种实现方式:
方式1:使用自定义函数(推荐,可读性更高)
把按钮的命令换成单独定义的函数,在函数里完成条件判断:
from tkinter import * from lib.SUI import WizardLand, RequestTokens, ExampleNFT, addchrome, CreateWallet root = Tk() root.title('Tool') root.state('zoomed') button_quit = Button( root, text="Exit Program", command=root.quit ) # 定义Start按钮的执行逻辑 def start_action(): # 无论复选框状态如何,必执行addchrome() addchrome() # 仅当复选框被勾选(var值为1)时,执行CreateWallet() if var.get() == 1: CreateWallet() button1 = Button( root, text="Start", command=start_action # 绑定自定义函数 ) #Options var = IntVar() opt1 = Checkbutton( root, text = "Create Wallet", variable=var ) # 建议添加组件布局代码(原代码缺失,否则按钮不会显示) button_quit.pack() opt1.pack() button1.pack() root.mainloop()
方式2:使用lambda表达式(简洁写法)
直接在lambda里通过条件判断控制函数执行:
button1 = Button( root, text="Start", command=lambda: (addchrome(), CreateWallet() if var.get() else None) )
逻辑说明
var.get()会返回复选框的状态:勾选时返回1,未勾选返回0- 先执行
addchrome(),再通过if var.get()判断是否需要执行CreateWallet()
内容的提问来源于stack exchange,提问作者duyanhhz
相关产品推荐
相关产品推荐

