让Label像Button一样可以点击

2019年9月14日 / 39次阅读 / Last Modified 2019年9月14日
tkinter

tkinter库的Label控件没有command参数,不能像Button一样,响应鼠标左键的点击。不过,我们可以通过bind绑定事件的方式,让Label控件也能像Button一样,对鼠标的点击有反应。有的时候我们需要这样做,因为Label和Button的界面显示有差异。

bind方法是tkinter的一个很通用的方法,通过bind函数,将某个事件跟界面控件绑定,当事件发生时,调用绑定的函数。有了bind方法,Python的门面,tkinter库,其实是非常强大的。

让Label控件能够响应鼠标点击,我们的思路就是给Label控件绑定鼠标左键点击事件,测试代码如下:

import tkinter as tk

def changeColor(event):
    global gNum; gNum += 1
    if gNum % 2 == 0: clickLabel.config(bg='red')
    if gNum % 2 != 0: clickLabel.config(bg='blue')

root = tk.Tk()
gNum = 0
clickLabel = tk.Label(text='click me', font=('microsoft yahei',32,'bold'))
clickLabel.bind('<Button-1>', changeColor)
clickLabel.pack()
root.mainloop()

高亮的一行,clickLabel绑定了Button-1,这就是鼠标左键点击事件,绑定的函数是changColor,修改自己的背景颜色,每一次点击,在红色和蓝色之间切换。以上代码的运行效果如下:

实现鼠标点击Label控件
实现鼠标点击Label控件

效果不错吧!通过bind方法,就实现了Label控件响应鼠标点击,即保留了Label的显示效果,也实现Button的点击功能。

-- EOF --

本文链接:https://www.pynote.net/archives/1131

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top