我想使用python GUI应用程序的工具提示,但我不知道如何?

时间:2018-01-23 00:45:54

标签: python python-3.x tkinter

从技术上讲,我想说的是,当你运行程序并在程序中滚动某些内容时,它应该显示一些内容。

以下是尝试使用的一些代码: 就像在这种情况下,当你滚动按钮时,它应该显示它是什么颜色。

from tkinter import *

root = Tk()

one = Button(root, text="One", bg="red", fg="white")
one.pack()
two = Button(root, text="Two", bg="green", fg="black")
two.pack(fill=X)
three = Button(root, text="Three", bg="blue", fg="white")
three.pack(side=LEFT, fill=Y)

root.mainloop()

1 个答案:

答案 0 :(得分:0)

我从here得到答案。 来自Pmw.Balloon的Tkinter的Pmw toolkit类可以提供帮助。

This blog post有一个非常好的解决方案。

以下是我从博客中获取的工具提示类的代码

from Tkinter import *

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):
    "Display text in tooltip window"
    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() + 27
    y = y + cy + self.widget.winfo_rooty() +27
    self.tipwindow = tw = Toplevel(self.widget)
    tw.wm_overrideredirect(1)
    tw.wm_geometry("+%d+%d" % (x, y))
    try:
        # For Mac OS
        tw.tk.call("::tk::unsupported::MacWindowStyle",
                   "style", tw._w,
                   "help", "noActivates")
    except TclError:
        pass
    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(widget, text):
    toolTip = ToolTip(widget)
    def enter(event):
        toolTip.showtip(text)
    def leave(event):
        toolTip.hidetip()
    widget.bind('<Enter>', enter)
    widget.bind('<Leave>', leave)