【问题标题】:Python: preventing Tkinter buttons from having an "animation"Python:防止 Tkinter 按钮具有“动画”
【发布时间】:2019-03-08 16:38:17
【问题描述】:

在用 Python 编写一个简单的交互式井字游戏程序,使用 Tkinter 制作 GUI 时,我在编写按钮时遇到了问题。

每当您在基于 Tkinter 的 GUI 中按下按钮时,该按钮都会有这种“动画”,只要按下它,它就会稍微向下和向右“跳跃” - 当它被释放时,它会跳回它的原始形式。我想知道是否可以阻止此动画的发生,但仍然让按钮在按下时执行命令(换句话说:用作按钮,但看起来像普通图像)。

如果值得的话,我的相关代码如下:

import tkinter
from PIL import Image, ImageTk

window = tkinter.Tk()
button_image = ImageTk.PhotoImage(Image.open(<path>))
button = tkinter.Button(window, image=button_image, borderwidth=0)
button.grid(row=1)

window.mainloop()

提前谢谢你。

【问题讨论】:

  • 你可能根本不想要一个按钮;将您的图像放在标签上,并使用.bind() 处理鼠标点击。请注意,从 UI 设计的角度来看,这是一个可怕的想法,因为您正在取消图像实际响应点击的所有反馈。
  • @jasonharper 我理解,但重点是让某人能够点击井字游戏表的其中一个方格,并在那里出现一个零/十字架。整个想法是让他们不知道那里实际上有一个按钮/标签;对他们来说,看起来就像他们正在按下一个空白空间并且出现了一个零/十字架。然而,当谈到使用标签时:我会尝试的,谢谢你的评论。

标签: python python-3.x button tkinter


【解决方案1】:

也许不是按钮而是标签?

panel = Label(root, image=button_image)
panel.image = button_image
panel.grid(row=1)

【讨论】:

  • 如果它还包含有关单击标签时如何调用函数的信息,您的答案会更好。
  • 哎呀,我不认为这是可能的。我认为如果你想要一个按钮上的图像,你可以去 Visual Studio C# forms,python tkinter 有点有限。
  • 绝对有可能。
【解决方案2】:

我有一个新的答案,如果你这样做呢?

button_image = ImageTk.PhotoImage(Image.open(<path>))
for _ in range(5):
    button = tkinter.button(root, image=button_image, borderwidth=0, relief=SUNKEN)
    button.grid(row=1)
root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2019-04-24
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多