python tkinter canvas create_line 函数返回值?

标签 python tkinter canvas

我最近在 python 交互模式下遇到了一些返回值(我从来没有在脚本模式下获得 create_line 函数的返回值,如果在交互模式下测试单独的行,我得到了返回值,但该函数没有像我预期的那样创建行)。我想知道这些是什么意思,为什么没有创建这条线。以下是我目前遇到的几个:

>>> canvas.create_line(134,100,134,400)
1
>>> 
我也得到了这些返回值
>>> def shape():
    canvas.create_line(134,100,134,400)
    canvas.create_line(134,400,234,400)
    canvas.create_line(234,100,234,400)
    canvas.create_line(234,100,134,100)

    
>>> shape()
>>> canvas.create_line(134,100,134,400)
5
>>> canvas.create_line(134,400,234,400)
6
>>> canvas.create_line(234,100,234,400)
7
>>> canvas.create_line(234,100,134,100)
8
>>> 
在这段代码中,当我调用 shape 时函数然后它没有创建行。单独调用这些行给了我这些返回值,奇怪的是值是如何从 5 开始然后连续到 8 的。有人可以告诉这是一个错误还是这些数字有意义吗?

最佳答案

当你说 canvas.create_line()它返回一个 Id创建的 Canvas 对象,稍后可用于修改或获取属性等。
这是关于 create_arc() 的事情因为我找不到有关 create_line() 的任何官方信息:

The constructor returns the object ID of the new arc object on canvas.


从你的例子来看,似乎只有 create_line()create_image()返回整数 id,其余的给出一个对象 id。
例如:
obj = canvas.create_line(134,100,134,400)
canvas.itemconfig(obj, width=10)
Canvas方法取tagorId ,所以你总是可以只使用一个选项 tag='line1'然后稍后调用它,例如:
obj = canvas.create_line(134,100,134,400,tag='line1')
canvas.itemconfig('line1', width=10)

in this code, when I called shape function then it did not create the lines.


你确定 Canvas 坐标正确吗?它从 Canvas 的 0,0 开始,尝试更改坐标并配置适用于 Canvas 的内容。

关于python tkinter canvas create_line 函数返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67104952/

相关文章:

javascript - 使用 recordrtc 将 Canvas 图像录制到视频文件

python - 在 gui 中更新 matplotlib 图的有效方法?

python - 具有可变参数的回调函数 tkinter 按钮

python - 树莓派开机时运行Python SimpleHTTPServer

python - 如何将html文件导入python变量?

python - 在 tkinter TreeView 中将文本换行

JavaFX 在 Canvas 上绘制 "static"线

javascript - HTML5 Canvas 游戏- 背景不工作

python - 更新数据存储中的 div 页面坐标

python - 在 Python 中使用 sklearn.preprocessing 进行数据转换