无法使用 canvas 在 tkinter python 中创建文本。显示:'int' 对象没有属性 'create_text'

Unable to create text in tkinter python using canvas. Displays: 'int' object has no attribute 'create_text'

我想创建一个矩形来显示一些文本。使用标签函数的输出非常没有吸引力。下面附上相应的代码片段。

from tkinter import *
import tkinter as tk
window = tk.Tk()
window.geometry('817x581')
window.configure(bg = "#FFFFFF")

canvas = Canvas(
    window,
    bg = "#66A5AD",
    height = 581,
    width = 817,
    bd = 0,
    highlightthickness = 0,
    relief = "ridge"
)
canvas.place(x = 0, y = 0)
def update_Device():
    display_Dev_ID.create_text(text="r1")

display_Dev_ID = canvas.create_rectangle(
    276.8828125000002,
    123.1220703125,
    576.8828125000002,
    183.1220703125,
    fill="#FFFFFF",
    outline="")
window.resizable(False,False)
window.mainloop()

如果您希望文本在矩形中间居中:

def update_device():
    x0, y0, x1, y1 = canvas.bbox(display_Dev_ID)
    canvas.create_text((x0 + x1) / 2, (y0 + y1) / 2, text="r1")

你必须这样做

首先获取所创建矩形的所有 4 个角的坐标,然后简单地计算中点并在此处设置文本,默认情况下 anchor='c' 因此它将居中

别忘了调用这个函数:

display_Dev_ID = canvas.create_rectangle(
    276.8828125000002,
    123.1220703125,
    576.8828125000002,
    183.1220703125,
    fill="#FFFFFF",
    outline="")

update_device()

像这样的地方