【发布时间】:2018-11-27 23:02:58
【问题描述】:
我正在使用 Tkinter 设计一个 GUI 应用程序,对于这个项目,我需要菜单按钮。在查看按钮时,我并没有被按钮附带的自定义选项所震撼,尤其是当我发现您可以将单击参数绑定到矩形时。
这允许我以(几乎)无限的方式自定义“按钮”,但为了允许我在按钮上放置文本,我需要创建一个矩形元素和一个文本元素并使用 Tkinter 的 tag_bind 属性将它们绑定在一起.
我想要的按钮设计属性之一是当用户将鼠标悬停在元素上时主动填充。现在我只是使用activefill="",它可以工作,除了文本元素和按钮元素只会在鼠标悬停在 that 元素上时填充。因此,例如,当我将鼠标悬停在按钮上时,不包括文本的按钮将突出显示,反之亦然,当我将鼠标悬停在文本上时。
下面是我用来生成按钮的简化(为简洁起见)版本;
button = canvas.create_rectangle(button_width, button_height, 10, 10, fill="000", activefill="111", tags="test")
text = canvas.create_text((button_width/2), (button_height/2), activefill="111", tags="test")
canvas.tag_bind("test", "<Button-1>", "foo")
有没有办法将活动填充功能绑定到标签而不是特定元素?
另一种选择是我完全错过了有关在 Tkinter 中自定义按钮的大量信息,而且我不会反对学习这些。
【问题讨论】:
标签: python user-interface tkinter