我在tkinter应用程序中搜索工具提示。现在,我在youtube上找到了一个示例。但是此工具提示出现在后台,没有用。我如何才能将其始终放在我的应用程序前面,以便用户意识到它?
查看我的图片:工具提示文本显示在我的“应用程序”窗口后面。 如何将其移到我的应用程序的前面?
Jack Shutzman https://youtu.be/MC9nuMBd390
from tkinter import *
class CreateToolTip(object):
def __init__(self, widget, text='widget info'):
self.waittime = 500
self.wraplength = 180
self.widget = widget
self.text = text
self.widget.bind('<Enter>', self.enter)
self.widget.bind('<Leave>', self.leave)
self.widget.bind('<ButtonPress>', self.leave)
self.id = None
self.tw = None
def enter(self, event = None):
self.schedule()
def leave(self, event = None):
self.unschedule()
self.hidetip()
def schedule(self):
""" Show the tip """
self.unschedule()
self.id = self.widget.after(self.waittime, self.showtip)
def unschedule(self):
id = self.id
self.id = None
if id:
self.widget.after_cancel(id)
def showtip(self, event=None):
""" Create the window for the tip """
x = y = 0
x, y, cx, cy = self.widget.bbox("insert")
# The shift from top/left of the widget, for the tip to show
x += self.widget.winfo_rootx() + 25
y += self.widget.winfo_rooty() + 20
# creates a toplevel toplevel window (like Frame, used for pop upor dialogue)
self.tw = Toplevel(self.widget)
# Leaves only the label and removes the app window decorations (wm -window manager)
self.tw.wm_overrideredirect(True)
# self.tw.wm_overrideredirect(False) # to see the windo decorations
self.tw.wm_geometry("+%d+%d" % (x,y))
# For Mac OS
try:
self.tw.tk.call("::tk::unsupported::MacWindowStyle",
"style", self.tw._w,
"help", "noActivates")
except TclError:
pass
label = Label(self.tw, text=self.text, justify='left',
background="white", relief='solid', borderwidth=1,
wraplength= self.wraplength)
label.pack(ipadx=1)
def hidetip(self):
tw = self.tw
self.tw= None
if tw:
tw.destroy()
我还需要mybe帖子,我如何使用它。
import tkinter as tk
from tkinter import ttk
import ToolTip
....
loadbtn = tk.Button(labelframe, text='Load', width=15, command=self.buttonLoadIni)
loadbtn.grid(row=1,column=0, padx=10, pady=5)
ToolTip.CreateToolTip(loadbtn, 'Load the Settings.ini file')
供您参考:
import tkinter as tk
from tkinter import ttk
import ToolTip
def load():
pass
root = tk.Tk()
loadbtn = tk.Button(root, text='Load', width=15, command=load)
loadbtn.grid(row=1,column=0, padx=10, pady=5)
ToolTip.CreateToolTip(loadbtn, 'Load the Settings.ini file')
root.mainloop()
工具提示的位置错误:enter image description here
良好的定位(内置)-也许可以使用???: enter image description here