有没有办法根据 ttk 按钮状态分配各种图像?

Is there a way to assign various images based upon a ttk button state?

我正在使用 GUI,我想根据按钮的状态使用各种图像设置我的 ttk 按钮。例如:

import tkinter as tk
from tkinter import PhotoImage, ttk

activeImage = PhotoImage(file="images/active.png")
disabledImage = PhotoImage(file="images/disabled.png")
normalImage = PhotoImage(file="images/normal.png")

button = ttk.Button(frame,\
                    activeimage=activeImage,\
                    disabledimage=disabledImage, \
                    normalimage=normalImage,\
                    command=lambda pass)

我没有在 tk 文档中找到任何解释如何执行此操作的内容,也没有在此站点上找到任何内容。如果已经在其他地方问过这个问题,我深表歉意。

是的,ttk 小部件支持使用 Stylemap 方法将属性映射到状态。

例如:

style = ttk.Style()
style.map(
    "Custom.TButton",
    image=[
        ("disabled", disabledImage),
        ("!disabled", normalImage),
        ("active", activeImage)
    ]
)

接下来,创建一个具有这种样式的按钮:

button = ttk.Button(frame, style="Custom.TButton")

tkdocs.com 站点有一个关于创建自定义样式的很好的教程。参见 Styles and Themes