有没有一种方法可以根据ttk按钮状态分配各种图像?

时间:2019-10-11 17:59:39

标签: python-3.x tkinter ttk

我正在使用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文档中找不到任何说明如何执行此操作的内容,也未在此站点上找到任何内容。我很抱歉,是否已经有人问过这个问题。

1 个答案:

答案 0 :(得分:0)

是的,ttk小部件支持使用map的{​​{1}}方法将属性映射到状态。

例如:

Style

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

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

tkdocs.com网站上有一个很好的教程,介绍如何创建自定义样式。参见Styles and Themes