Python tkinter 在画布上创建对象

用户8884453

我是 python 新手,正在尝试使用 tkinter 为模拟器设计 GUI。

我的问题是我需要通过单击按钮在画布上创建一个对象图像,并且必须能够在画布区域周围拖动。

但是,目前我只能在画布上创建图像而无法拖动

这是我的部分代码:

from tkinter import *
def show_train():
     canvas.create_image(30,30, image=image1)
root = Tk()
canvas = Canvas(iframe5, height=600, width=520, bg="white")
image1 = PhotoImage(file='train.png')
b1=Button(frame,justify=LEFT)
b1.config(image=image1,width="80",height="80", command=show_train)
b1.pack(side=LEFT)
b1.place(x=0, y=12)
canvas.pack(side=RIGHT, expand=True)
root.mainloop()

任何善良的灵魂?提前致谢

用户8884453

解决我自己的问题,这段代码现在有效。

class CreateCanvasObject(object):
    def __init__(self, canvas, image_name, xpos, ypos):
        self.canvas = canvas
        self.image_name = image_name
        self.xpos, self.ypos = xpos, ypos
        self.tk_image = tk.PhotoImage(file="{}{}".format(IMAGE_PATH, image_name))
        self.image_obj= canvas.create_image(xpos, ypos, image=self.tk_image)
        canvas.tag_bind(self.image_obj, '<Button1-Motion>', self.move)
        canvas.tag_bind(self.image_obj, '<ButtonRelease-1>', self.release)
        self.move_flag = False

    def move(self, event):
        if self.move_flag:
            new_xpos, new_ypos = event.x, event.y
            self.canvas.move(self.image_obj, new_xpos-self.mouse_xpos ,new_ypos-self.mouse_ypos)
            self.mouse_xpos = new_xpos
            self.mouse_ypos = new_ypos
        else:
            self.move_flag = True
            self.canvas.tag_raise(self.image_obj)
            self.mouse_xpos = event.x
            self.mouse_ypos = event.y

    def release(self, event):
        self.move_flag = False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在tkinter画布上动态创建/删除绘制对象?

来自分类Dev

Python; tkinter; 画布对象和事件

来自分类Dev

在Tkinter Python中创建全局画布

来自分类Dev

Python tkinter - 如何创建一个在画布上滚动的实时 xy 图

来自分类Dev

Python Tkinter刷新画布

来自分类Dev

Python Tkinter画布几何

来自分类Dev

Python Tkinter刷新画布

来自分类Dev

画布内的 Python Tkinter 画布

来自分类Dev

Tkinter使用删除从画布上删除对象

来自分类Dev

如何刷新或销毁在 tkinter python 画布中创建的框架?

来自分类Dev

如何在python-Tkinter的画布文本上放置轮廓

来自分类Dev

在python tkinter中恢复画布上已删除的图片

来自分类Dev

Python Tkinter,画布不显示

来自分类Dev

Python Tkinter画布运行缓慢

来自分类Dev

保存Tkinter画布对象

来自分类Dev

保存Tkinter画布对象

来自分类Dev

Tkinter Canvas-如何在跨越多个对象的区域上创建事件(Python2)

来自分类Dev

在python Tkinter画布上覆盖整个画布的绘图矩形在顶部和左侧均未显示边框

来自分类Dev

在tkinter画布对象的查看区域周围创建“障碍”

来自分类Dev

在tkinter画布对象的查看区域周围创建“障碍”

来自分类Dev

创建Python tkinter的简单应用

来自分类Dev

Python tkinter创建矩形错误

来自分类Dev

tkinter上的python缩进错误

来自分类Dev

使用 tkinter 在 Python 中创建动态命名的 gui 对象

来自分类Dev

如何禁用Tkinter画布对象

来自分类Dev

在Tkinter画布内创建LabelFrame

来自分类Dev

Tkinter 画布多次创建图像

来自分类Dev

Python,Tkinter:如何使用其ID或标签获取所有画布对象的句柄?

来自分类Dev

如何使用python 3.8在tkinter中的画布中创建滚动条

Related 相关文章

热门标签

归档