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

CustomTkinter按钮按下时背景与文本颜色异常变化问题求助

CustomTkinter按钮按下样式配置及表格生成实现

我需要在CustomTkinter(简称ctk)项目中实现以下效果:

  • 按钮被按下时,背景颜色发生变化,同时文本颜色从白色变为黑色
  • 点击按钮调用gen_table函数,在ttkbootstrap窗口中创建表格

按钮状态截图

  • 按下前:
    按下前
  • 按下后:
    按下后

实现代码

import customtkinter as ctk
import ttkbootstrap
from ttkbootstrap.tableview import Tableview
from ttkbootstrap.constants import *

def gen_table():
    # 创建ttkbootstrap窗口并生成表格
    app = ttkbootstrap.Window()

    coldata = ["LicenseNumber", "company name", "text"]
    rowdata = [("A123", "IzzyCo", 12)]
    
    dt = Tableview(
        master=app,
        coldata=coldata,
        rowdata=rowdata,
        searchable=True,
        bootstyle=PRIMARY,
        stripecolor=("lightgreen", None),
    )
    dt.pack(fill=BOTH, expand=YES, padx=10, pady=10)
    app.mainloop()

if __name__ == "__main__":
    mainWindow = ctk.CTk()
    # 配置按钮的正常、悬停、按下状态样式
    btn = ctk.CTkButton(
        master=mainWindow,
        text="something",
        bg_color="transparent",
        # 正常状态样式
        fg_color="blue",  # 可根据需求修改正常背景色
        text_color="white",  # 正常文本颜色
        # 悬停状态样式
        hover_color="red",
        # 按下状态样式
        pressed_color="gray",  # 可根据需求修改按下时背景色
        pressed_text_color="black",  # 按下时文本颜色
        command=gen_table
    ).grid()
    mainWindow.mainloop()

关键说明

  • 通过CTkButton的pressed_color参数设置按下时的背景颜色,pressed_text_color设置按下时的文本颜色,实现点击时的样式切换
  • gen_table函数中使用ttkbootstrap的Tableview组件创建可搜索、带条纹样式的表格

内容的提问来源于stack exchange,提问作者kush_1244

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:18:25