gpt4 book ai didi

python - 如何在python中更改Tkinter按钮的on_press "animation"

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:14 25 4
gpt4 key购买 nike

我有一个类似任务栏的Frame,其中包含带有图像的自定义Button。但每次我单击此按钮时,Tkinter 都会将按钮向右/按钮移动 1px。

Button clicked

是否可以覆盖此行为?或者我是否必须从 Tkinter.Label 而不是 Tkinter.Button 派生?

编辑:添加一些代码: 导入 Tkinter 导入日志记录

logger = logging.getLogger(__name__)
class DesktopBtn(Tkinter.Button):
'''
Represents a Button which can switch to other Desktops
'''

_FONTCOLOR="#FFFFFF"

def getRelativePath(self,folder,name):
import os
dir_path = os.path.dirname(os.path.abspath(__file__))
return os.path.abspath(os.path.join(dir_path, '..', folder, name))

def __init__(self, parent,desktopManager,buttonName, **options):
'''
:param buttonName: Name of the button

'''
Tkinter.Button.__init__(self, parent, **options)
logger.info("init desktop button")
self._imagePath=self.getRelativePath('res','button.gif')
self._BtnPresspath = self.getRelativePath('res','buttonP.gif')
self._BtnPressImage = Tkinter.PhotoImage(file=self._BtnPresspath)
self._image = Tkinter.PhotoImage(file=self._imagePath)
self.bind('<ButtonPress-1>',self._on_pressed)
self.bind('<ButtonRelease-1>',self._on_release)
self._parent = parent
self._btnName = buttonName
self._desktopManager = desktopManager
self.config(width=70, height=65,borderwidth=0,compound=Tkinter.CENTER,font=("Arial", 9,"bold"),foreground=self._FONTCOLOR, text=buttonName,wraplength=64,image=self._image, command=self._onClickSwitch)

def _on_pressed(self,event):
self.config(relief="flat")
self.config(image=self._BtnPressImage)

def _on_release(self,event):
self.config(image=self._image)

def _onClickSwitch(self):
self.config(relief="flat")
logger.info("Buttonclickmethod onClickSwitch")
self._desktopManager.switchDesktop(self._btnName)

def getButtonName(self):
return self._btnName

最佳答案

您可以通过在小部件的绑定(bind)中返回“break”来禁用按钮的动画,这会停止绑定(bind)函数的传播。

因此,您可以更改通常绑定(bind)到按钮的函数以返回“break”。

或者您可以添加另一个绑定(bind),但这确实会阻止在此绑定(bind)之后进行的任何绑定(bind):

tkButton.bind("<Button-1>", lambda _: "break", add=True)

关于python - 如何在python中更改Tkinter按钮的on_press "animation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30915213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com