툴팁을 할당하고 관리하는 데 다음 스크립트를 사용하고 있습니다. 그것은 효과가 있지만 약간의 단점이 있습니다. 툴팁 스크립트가 500ms 후에 실행되지 않는 한 툴팁에 더 이상 클릭 다운 애니메이션이없는 버튼 위젯. 어떤 아이디어? 가능하다면 언제든지 네이티브 버튼 동작을 유지하고 툴팁을 표시하기 전에 500ms의 대기 시간을 갖기를 원합니다.버튼 누름 애니메이션을 재정의하지 않고이 python tkinter 툴팁을 어떻게 구현합니까?
class ToolTip(object):
def __init__(self, widget):
self.widget = widget
self.tipwindow = None
self.id = None
self.x = self.y = 0
def showtip(self, text):
self.text = text
if self.tipwindow or not self.text: return
x,y,cx,cy = self.widget.bbox("insert")
x = x + self.widget.winfo_rootx() +15
y = y + cy + self.widget.winfo_rooty() +65
self.tipwindow = tw = Toplevel(self.widget)
tw.wm_overrideredirect(1)
tw.wm_geometry("+%d+%d"%(x,y))
label = Label(tw, text=self.text, justify=LEFT,background="#ffffe0", relief=SOLID, borderwidth=1,font=("tahoma", "8", "normal"))
label.pack(ipadx=1)
def hidetip(self):
tw = self.tipwindow
self.tipwindow = None
if tw: tw.destroy()
def createToolTip(self,widget,text):
toolTip = self.ToolTip(widget)
def enter(event): root.after(500,show(event))
def show(event): toolTip.showtip(text)
def leave(event): toolTip.hidetip()
widget.bind('<Enter>', enter)
widget.bind('<Leave>', leave)
다시 한 번 감사드립니다. Bryan. 이제 다른 문제가 생겼습니다. 500ms 이내에 버튼을 입력하고 종료하면 툴팁이 계속 표시됩니다. 어떤 생각을 어떻게 고쳐야합니까? – Symon
@Symon : 의견은 그 대답에 대한 적절한 장소가 아닙니다. 짧은 버전 : 500ms 동안 커서가 밖으로 나가면 툴팁을 표시하지 마십시오. 또는 ''처리 중에 보류중인 "after"작업을 취소하십시오. –
팁 주셔서 감사합니다, 제 2 제안과 함께갔습니다. – Symon