CustomTkButton自定义类按钮点击不执行命令问题求助
你的自定义按钮点击没反应的核心原因是没有把回调函数绑定到按钮的点击事件上。CTkButton需要通过command参数指定点击后执行的函数,你的代码里既没在自定义类的初始化中处理这个参数,也没在实例化时传入。
两种修复方案:
方案一:在自定义类中支持command参数
修改DashboardCustomTKbutton的__init__方法,加入command参数并传递给父类初始化:
import tkinter as tk import customtkinter from PIL import ImageTk, Image usericonimage = customtkinter.CTkImage( light_image=Image.open(r"D:\school\CS\NEA\PROTOTYPES\app\final project\images\usericon.png"), size=(30, 30)) def onclick(): print("testing placeholder") class DashboardCustomTKbutton(customtkinter.CTkButton): def __init__(self, master, width=20, height=20, fg_color="white", text="", border_width=2, corner_radius=8, image=usericonimage, hover_color="grey", hover=True, command=None, *args, **kwargs): # 添加command参数 super().__init__(master, width=width, height=height, fg_color=fg_color, hover_color=hover_color, hover=hover, text=text, border_width=border_width, corner_radius=corner_radius, image=image, command=command) # 将command传递给父类 root = tk.Tk() button1 = DashboardCustomTKbutton(master=root, command=onclick) # 实例化时传入回调函数 button1.pack() root.mainloop()
方案二:实例化按钮时直接绑定command
如果不想修改自定义类,可在创建实例后通过configure绑定回调,或者直接在实例化时传入:
# 自定义类保持原代码不变 root = tk.Tk() button1 = DashboardCustomTKbutton(master=root) button1.configure(command=onclick) # 绑定点击回调 button1.pack() root.mainloop()
也可以直接在实例化时传参:
button1 = DashboardCustomTKbutton(master=root, command=onclick)
两种方案都能让按钮点击后执行onclick函数,打印指定内容。
内容的提问来源于stack exchange,提问作者fin
相关产品推荐
相关产品推荐

