Good Luck To You!
把一个窗体变成没有标题栏的窗体比较简单,只要一行代码:
root.overrideredirect(True) # 无标题栏窗体
移动窗体需要绑定事件,绑定2个事件:鼠标点击MouseDown事件,按住拖动MouseMove事件,分别得到相应的坐标位置,把根据计算出的坐标位置,把窗体移动相应的新位置。
调节窗体大小,由于边框也没有了,不可能通过边框来调节窗体尺寸,只要新建一个组件,比如标签来根据绑定的鼠标拖动size事件来得到相应坐标,再根据计算出来的坐标,把窗体的尺寸调节到相应的大小。
以下是全部代码。 冫亓垚
from tkinter import * def MouseDown(event): # 不要忘记写参数event global mousX # 全局变量,鼠标在窗体内的x坐标 global mousY # 全局变量,鼠标在窗体内的y坐标 mousX=event.x # 获取鼠标相对于窗体左上角的X坐标 mousY=event.y # 获取鼠标相对于窗左上角体的Y坐标 def MouseMove(event): w1=la1.winfo_x() # w1为标签1的左边距 h1=la1.winfo_y() # h1为标签1的上边距 root.geometry(f'+{event.x_root - mousX-w1}+{event.y_root - mousY-h1}') # 窗体移动代码 def exit(event): root.destroy() # 退出程序 root=Tk() # 源码来自aying7.com root.geometry('280x140+780+400') root.overrideredirect(True) # 无标题栏窗体 la1=Label(root,text='按着拖动,移动窗体\n鼠标双击退出程序',height=3,bg='lightgreen',cursor='fleur') la1.pack(padx=15,pady=30) la1.bind("<Button-1>",MouseDown) # 按下鼠标左键绑定MouseDown函数 la1.bind("<B1-Motion>",MouseMove) # 鼠标左键按住拖曳事件 la1.bind("<Double-Button-1>",exit) # 双击鼠标左键,退出程序 def size(event): x1 = root.winfo_pointerx() y1 = root.winfo_pointery() x0 = root.winfo_rootx() y0 = root.winfo_rooty() root.geometry("%sx%s" % ((x1-x0),(y1-y0))) return la2=Label(root,text='按住拖动调节窗体大小',bg='lightblue') # 标签2用来调节窗体尺寸 la2.pack(side=BOTTOM,anchor=E) la2.bind("<B1-Motion>", size) root.mainloop()
运行图
以上代码由 aying7.com 测试成功
来源:阿英工作室
本文链接:http://aying7.com/post/4.html