You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:26:01