使用 tix.Balloon
实现 ToolTip#
参考:用Tkinter打造GUI开发工具(17)tix.Balloon气球窗口小部件
Tix.Balloon
气球窗口小部件一个部件弹出提供帮助。当用户将光标移动到已绑定了气球窗口小部件的窗口小部件中时,屏幕上将显示一个带有描述性消息的小型弹出式窗口。
使用 tix.Balloon
气球窗口小部件的构造语法如下:
balloon = tix.Balloon (master, statusbar=None)
参数 master
这代表了父部件。statusbar
是这个部件的绑定的状态条部件。
tix.Balloon
除了上面的属性外,还有一些方法可以使用。
直接看代码:
TCL_ALL_EVENTS = 0
class CustomBalloon:
def __init__(self, window):
self.window = window
self.exit = -1
self.create_widget(window)
def create_widget(self, window):
z = window.winfo_toplevel() # 获取 TopLevel 窗口
z.wm_protocol("WM_DELETE_WINDOW", lambda self=self: self.quitcmd())
z.title('Tix.Balloon演示') #Tkinter中设置窗口标题方法
status = ttk.Label(window, width=40, relief='sunken')
status.grid()
# 建立2个 tix按钮
button1 = ttk.Button(window, text='关闭窗口',
command=self.quitcmd)
button2 = ttk.Button(window, text='按钮自毁')
button2['command'] = lambda w=button2: w.destroy()
button1.grid()
button2.grid()
# 建立 tixballoon
b = tix.Balloon(window, statusbar=status)
b.bind_widget(button1, balloonmsg='关闭这个窗口',
statusmsg='按下这个按钮,关闭窗口。')
b.bind_widget(button2, balloonmsg='删除这个按钮',
statusmsg='按下这个按钮,删除这个按钮。')
def quitcmd (self):
self.exit = 0
def mainloop(self):
foundEvent = 1
while self.exit < 0 and foundEvent > 0:
foundEvent = self.window.tk.dooneevent(TCL_ALL_EVENTS)
def destroy (self):
self.window.destroy()
# 必须使用 tix.Tk(),不能使用 tkinter.Tk()
root = tix.Tk()
balloon = CustomBalloon(root)
balloon.mainloop()
balloon.destroy()
效果图: