使用鼠标工具、模块的工具来拖动tkinter 提供控件。一个模块提供了用鼠标拖动和调整kinter 窗口大小的工具。
项目描述
- 姓名
tk_dragtool
- 描述
使用鼠标工具、工具的模块和控件提供控件。一个模块提供了使用鼠标拖动和调整 tkinter 窗口小部件的工具。
- 功能函数
- bind_drag(tkwidget,拖动器)
拖曳拖拉机: 拖曳拖拉机被当事方的控件或窗口接收到, 拖曳拖拉机后, 拖曳拖拉机, 接受与会近距离接触, 但拖曳拖拉机作为事件的控制方, , 位置不会改变。 x 和 y: 作用同上。
- bind_resize(tkwidget,拖动器,锚,min_w=0,min_h=0,move_dragger=True)
anchor:缩放的方位,取值为N,S,W,E,NW,SW,SE,分别表示东、西、南、北。 min_w,min_h:该方向tkwidget缩放的最小move_dragger: 缩放时是否移动拖动器。
- 可拖动(tkwidget)
调用draggwidget) 可以使用任何控件(可以使用):tkwidget 或一个控件(Wm)。 x 和只允许改变x 坐标。
- 获取位置()
获取鼠标当前位置。
- 移动(小部件,x=无,y=无,宽度=无,高度=无)
移动控件或窗口皆小部件,参数任选。
示例 示例
import tkinter as tk
from tk_dragtool import draggable
root=tk.Tk()
btn=tk.Button(root,text="Drag")
draggable(btn)
btn.place(x=0,y=0)
root.mainloop()
更复杂的例子,实现了 8 个例子:
btns=[] # 用btns列表存储创建的按钮
def add_button(func,anchor):
# func的作用是计算按钮新坐标
b=ttk.Button(root)
b._func=func
bind_resize(btn,b,anchor)
x,y=func()
b.place(x=x,y=y,width=size,height=size)
b.bind('<B1-Motion>',adjust_button,add='+')
btns.append(b)
def adjust_button(event=None):
# 改变大小或拖动后,调整手柄位置
for b in btns:
x,y=b._func()
b.place(x=x,y=y)
root=tk.Tk()
root.title("Test")
root.geometry('500x350')
btn=ttk.Button(root,text="Button")
draggable(btn)
btn.bind('<B1-Motion>',adjust_button,add='+')
x1=20;y1=20;x2=220;y2=170;size=10
btn.place(x=x1,y=y1,width=x2-x1,height=y2-y1)
root.update()
# 创建各个手柄, 这里是控件缩放的算法
add_button(lambda:(btn.winfo_x()-size, btn.winfo_y()-size),
'nw')
add_button(lambda:(btn.winfo_x()+btn.winfo_width()//2,
btn.winfo_y()-size), 'n')
add_button(lambda:(btn.winfo_x()+btn.winfo_width(), btn.winfo_y()-size),
'ne')
add_button(lambda:(btn.winfo_x()+btn.winfo_width(),
btn.winfo_y()+btn.winfo_height()//2),'e')
add_button(lambda:(btn.winfo_x()+btn.winfo_width(),
btn.winfo_y()+btn.winfo_height()), 'se')
add_button(lambda:(btn.winfo_x()+btn.winfo_width()//2,
btn.winfo_y()+btn.winfo_height()),'s')
add_button(lambda:(btn.winfo_x()-size, btn.winfo_y()+btn.winfo_height()),
'sw')
add_button(lambda:(btn.winfo_x()-size,
btn.winfo_y()+btn.winfo_height()//2), 'w')
root.mainloop()
效果图:
作者:七分诚意 qq:307677200 百度贴吧账号:qfcy_ 作者CSDN主页:https ://blog.csdn.net/qfcy_/
项目详情
关
tk- dragtool --1.1.2-.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | e0d86de7e48eadc1e7f42d609fc4a3a6601f9d51d6669a67412759adeb6d04bc |
|
| MD5 | cecbb8982a37346e67fa1cb3c8cfba5f |
|
| 布莱克2-256 | d5f4c7e22e7eb8a90cbd8839d8d75b9ba6f607ad30a88a9d529b9a8a07cd1d44 |