使用tkinter创建窗体并绑定鼠标事件

##代码

窗体居中,在窗体中鼠标单击,会将坐标输出给 label组件,代码如下:

import tkinter 

def callback(event):
    label["text"] = str(event.x)+","+str(event.y)
  
#初始化Tk()
root = tkinter.Tk()

#设置标题
root.title('tkiner_form')

#设置窗口大小
width = 380
height = 300

#获取屏幕尺寸以计算布局参数,使窗口居屏幕中央
screenwidth = root.winfo_screenwidth()  
screenheight = root.winfo_screenheight() 

alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
root.geometry(alignstr)


#设置窗口是否可变长、宽,True:可变,False:不可变
root.resizable(width=False, height=True)
label = tkinter.Label(root,text="Hello,tkinter!")
label.bind("", callback)
label.pack()
button1 = tkinter.Button(root,text="Button1")
button1.pack(side = tkinter.LEFT)
button2 = tkinter.Button(root,text ="Button2")
button2.pack(side = tkinter.RIGHT)
root.mainloop()
#进入消息循环


总结及问题

  1. tkinter的 event 和pymouse 的 event 属性不一样,前者是event.x和event.y,后者的是Position属性
  2. 虽然绑定了鼠标事件,但是貌似在窗体外单击时,捕捉不到鼠标事件,有知道原因的请指导下我,谢谢。

你可能感兴趣的:(tkinter)