无法使用 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()
像这样的地方
我想创建一个矩形来显示一些文本。使用标签函数的输出非常没有吸引力。下面附上相应的代码片段。
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()
像这样的地方