要从事件中提取对象id,可以使用Canvas的find_closest方法或find_overlapping方法。这些方法接收事件发生的坐标作为参数,并返回与该坐标最接近或重叠的对象的标识符。 示例代码如下: import tkinter as tk def canvas_clicked(event): x = event.x y = event.y # 使用find_closest方法获取与坐标最接近的对象id...
为了找到最接近指针的项目,我们将鼠标事件坐标传递给canvas.find_closest()方法,该方法检索最接近给定位置的项目的标识符。 一旦画布中至少有一个项目,我们可以安全地假定该方法将始终返回有效的项目标识符: importtkinterastkclassApp(tk.Tk):def__init__(self):super().__init__() self.title("Finding canvas ...
返回画布上所有对象的对象 ID 编号列表,从最低到最高。 .find_below(tagOrId) 1. 返回由 tagOrId 指定的对象的对象 ID。 如果多个对象匹配,您将获得最低的一个。 如果您将最低对象的对象 ID 传递给它,则返回一个空元组。 .find_closest(x,y,halo=None,start=None) 1. 返回一个包含最接近点 (x, y)...
在Canvas 中通过 create_xxx 方法绘制图形项之后,这些图形项井不是完全静态的图形,每个图形项都是一个独立的对象,程序完全可以动态地修改、删除这些图形项。 Canvas 以“堆叠”的形式来管理这些图形项,先绘制的图形项位于“堆叠”的下面,后绘制的图形项位于“堆叠”的上面。因此,如果两个图形项有重叠的部分,那么后...
print canvas.find_closest(x, y) 对象显示顺序: Canvas 组件中创建的画布对象都会被列入显示列表中, 默认情况下新创建的会覆盖旧的画布对象的重叠部分,即位于显示列表上方的画布对象将覆盖下方那个)。当然,显示列表中的画布对象可以被重新排序。 指定画布对象 ...
第92行、第97行代码调用 Canvas 的 scale() 方法缩放椭圆。第116行代码调用 Canvas 的find_closest()方法获取与指定点最接近的图形项;第155行代码调用 Canvas 的find_enclosed() 方法获取指定矩形区域内的图形项;第170行代码调用 Canvas 的 delete() 方法删除图形项。
x=canvas.canvasx(event.x)y=canvas.canvasy(event.y)print canvas.find_closest(x,y) 3、画布对象显示的顺序 Canvas 组件中创建的画布对象都会被列入显示列表中,越接近背景的画布对象位于显示列表的越下方。显示列表决定当两个画布对象重叠的时候是如何覆盖的(默认情况下新创建的会覆盖旧的画布对象的重叠部分,即...
scrollregion属性被用来限制canvas的滚动操作,可以这样对其进行设置: canvas.config(scrollregion=canvas.bbox(ALL)) 通过canvasx和canvasy方法可以将window坐标转换为canvas坐标,代码如下: defcallback(event):canvas=event.widget x=canvas.canvasx(event.x)y=canvas.canvasy(event.y)print canvas.find_closest(x,y)...
Canvas语法格式Ca=Canvas(mater,options)2.Canvas相关属性属性含义anchor指定绘制文字、GUI组件的位置。该选项仅对create_text()、create_window()方法有效joinstyle指定直接连接点的风格。仅对绘制直线和多向形有效。该选项支持METTER、ROUND、BEVEL选项值。justify指定文字的对齐方式。该选项支持CENTER、LEFT、RIGHT常量值...
(9条消息)Tkinter组件详解(⼗⼆):Canvas Canvas(画布)组件为 Tkinter 的图形绘制提供了基础。Canvas 是⼀个⾼度灵活的组件,你可 以⽤它绘制图形和图表,创建图形编辑器,并实现各种⾃定义的⼩部件。何时使⽤ Canvas 组件?Canvas 是⼀个通⽤的组件,通常⽤于显⽰和编辑图形。你可以⽤...