python tkinter库画布鼠标拖动监听_Python3 Tkinter基础 Canvas bind 绑定左键 鼠标左键点击时,在当前位置画出一个椭圆形...

镇场诗:

清心感悟智慧语,不着世间名与利。学水处下纳百川,舍尽贡高我慢意。

学有小成返哺根,愿铸一良心博客。诚心于此写经验,愿见文者得启发。

——————————————————————————————————————————

code:

from tkinter import *

root=Tk()

w=Canvas(root,width=200,height=200,background=‘white‘)

w.pack()

def paint(event):

#event.x 鼠标左键的横坐标

#event.y 鼠标左键的纵坐标

x1,y1=(event.x-1),(event.y-1)

x2,y2=(event.x+1),(event.y+1)

w.create_oval(x1,y1,x2,y2,fill=‘red‘)

#鼠标左键一点,就画出了一个小的椭圆

#画布与鼠标左键进行绑定

w.bind("",paint)

mainloop()

result:

动 出 舍字

——————————————————————————————————————————

博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。

Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。

我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。

注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以通过画布的移动事件来实现输入框位置画布位置改变。具体步骤如下: 1. 给画布定移动事件,当画布移动触发该事件。 ``` canvas.bind('<B1-Motion>', move_canvas) ``` 2. 定义移动事件处理函数,获取画布当前位置,然后将输入框的位置设置为画布位置加上一个偏移量。 ``` def move_canvas(event): # 获取画布当前位置 x, y = canvas.coords(canvas_image) # 设置输入框位置 input_box.place(x=x+10, y=y+10) ``` 其中,10为偏移量,你可以根据需求调整。 完整代码示例: ``` import tkinter as tk # 创建窗口和画布 root = tk.Tk() canvas = tk.Canvas(root) canvas.pack() # 加载图片 image = tk.PhotoImage(file='image.png') canvas_image = canvas.create_image(0, 0, image=image, anchor='nw') # 创建输入框 input_box = tk.Entry(canvas) input_box.place(x=10, y=10) # 画布移动事件 canvas.bind('<B1-Motion>', move_canvas) # 移动事件处理函数 def move_canvas(event): # 获取画布当前位置 x, y = canvas.coords(canvas_image) # 设置输入框位置 input_box.place(x=x+10, y=y+10) root.mainloop() ``` ### 回答2: Python中的tkinter是用于创建GUI应用程序的,可用于创建图形用户界面。如果要让一个输入框随着画布位置的改变而改变,可以采取以下步骤: 1. 导入必要的模块: ```python from tkinter import * ``` 2. 创建一个窗口和画布: ```python root = Tk() canvas = Canvas(root, width=300, height=300) canvas.pack() ``` 3. 创建一个输入框: ```python entry = Entry(root) entry.pack() ``` 4. 定义一个函数,该函数会在画布移动被调用,更新输入框的位置: ```python def update_entry_position(event): x = canvas.winfo_x() y = canvas.winfo_y() entry.place(x=x+10, y=y+10) ``` 5. 将该函数与画布的移动事件定: ```python canvas.bind("<B1-Motion>", update_entry_position) ``` 完整的代码示例如下: ```python from tkinter import * def update_entry_position(event): x = canvas.winfo_x() y = canvas.winfo_y() entry.place(x=x+10, y=y+10) root = Tk() canvas = Canvas(root, width=300, height=300) canvas.pack() entry = Entry(root) entry.pack() canvas.bind("<B1-Motion>", update_entry_position) root.mainloop() ``` 这样,当你用鼠标拖动画布,输入框会跟随画布位置改变。在函数`update_entry_position`中,通过`winfo_x()`和`winfo_y()`方法获取画布当前位置,然后将输入框重新放置到画布位置的偏移量上。 ### 回答3: 使用PythonTkinter可以实现输入框(Entry)随画布Canvas位置的改变。 首先,我们需要创建一个窗口,然后在窗口中添加一个画布和一个输入框。可以使用Tkinter中的Canvas和Entry类来创建它们。 接下来,我们可以使用画布定事件(bind)方法来监测鼠标的移动事件。当鼠标画布上移动,可以通过获取鼠标的坐标来动态改变输入框的位置。 具体的实现步骤如下: 1. 导入Tkinter:`import tkinter as tk` 2. 创建窗口:`window = tk.Tk()` 3. 创建画布和输入框:`canvas = tk.Canvas(window, width=300, height=300) entry = tk.Entry(window)` 4. 显示画布和输入框:`canvas.pack() entry.pack()` 5. 定义鼠标移动事件处理函数:`def move(event): x = event.x y = event.y entry.place(x=x, y=y)` 6. 鼠标移动事件到画布上:`canvas.bind('<Motion>', move)` 7. 运行窗口主循环:`window.mainloop()` 当运行程序后,可以在窗口中看到一个画布和一个输入框。鼠标画布上移动,输入框会随着鼠标移动而改变位置。 以上就是使用PythonTkinter实现输入框随画布位置改变的方法。代码简单易懂,适合初学者学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值