python-tkinter-06-绝相对/表格布局/鼠标事件

  • 绝对布局
import tkinter
from tkinter import ttk

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("600x400+200+20")

label1=tkinter.Label(win, text="good", bg="blue")
label2=tkinter.Label(win, text="nice", bg="red")
label3=tkinter.Label(win, text="cool", bg="pink")

#绝对布局,窗口的变化对位置没有影响
label1.place(x=10, y=10)
label2.place(x=50, y=50)
label3.place(x=100, y=100)

win.mainloop()
  •  相对布局
import tkinter
from tkinter import ttk

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

label1=tkinter.Label(win, text="good", bg="blue")
label2=tkinter.Label(win, text="nice", bg="red")
label3=tkinter.Label(win, text="cool", bg="pink")

#相对布局,窗体改变对控件有影响
#tkinter.BOTH
label1.pack(fill=tkinter.Y, side=tkinter.LEFT)
label2.pack(fill=tkinter.Y, side=tkinter.TOP)
label3.pack()

win.mainloop()
  • 表格布局
import tkinter

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

label1=tkinter.Label(win, text="good", bg="blue")
label2=tkinter.Label(win, text="nice", bg="red")
label3=tkinter.Label(win, text="cool", bg="pink")
label4=tkinter.Label(win, text="handsome", bg="yellow")

#相对布局,窗体改变对控件有影响
#tkinter.BOTH
label1.grid(row=0, column=0)
label2.grid(row=0, column=1)
label3.grid(row=1, column=0)
label4.grid(row=1, column=1)

win.mainloop()

  • 鼠标点击事件
import tkinter

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

def func(event):
    print(event.x, event.y)


#<Button-1> 鼠标左键
#<Button-2> 鼠标滑轮
#<Button-3> 鼠标右键
#<Double-Button-1>  鼠标左键双击
#<Triple-Button-1>  鼠标左键三击
#或tkinter.Label
button1 = tkinter.Button(win, text="leftmouse button")
#bind  给控件绑定事件
button1.bind("<Double-Button-1>", func)
button1.pack()

win.mainloop()
  •  鼠标移动事件
import tkinter

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

label = tkinter.Label(win,text="good good study")
label.pack()
def func(event):
    print(event.x, event.y)
    
#<B1-Motion>  按住左键移动
#<B2-Motion>  按住中键移动
#<B3-Motion>  按住右键移动
label.bind("<B1-Motion>",func)

win.mainloop()
  • 鼠标释放事件
import tkinter

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

label = tkinter.Label(win,text="good good study", bg="red")
label.pack()
def func(event):
    print(event.x, event.y)
    
#<ButtonRelease-1>   释放鼠标左键
#<ButtonRelease-2>   释放鼠标中键
#<ButtonRelease-3>   释放鼠标右键
label.bind("<ButtonRelease-1>",func)

win.mainloop()

  • 鼠标进入与离开事件
import tkinter

win = tkinter.Tk()
win.title("xinghaohan")
win.geometry("400x400+200+20")

label = tkinter.Label(win,text="good good study", bg="red")
label.pack()
def func(event):
    print(event.x, event.y)
    
#<Enter>  鼠标光标进入控件时触发
#<Leave>  鼠标光标离开控件时触发
label.bind("<Enter>",func)
label.bind("<Leave>",func)

win.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值