Python canvas 文本位置随字体变化

Python canvas text position changes with font

我对 Python 和 GUI 编程还很陌生,但是在尝试创建一个简单的 canvas 程序时,我 运行 遇到了以下问题: 当我使用 create_text 函数(x、y 等)时,它会在 (x, y) 处很好地创建文本,但是当我添加字体时,文本会向左移动并且不再在 (x, y) 处创建y).

有人能告诉我如何解决这个问题,并在 (60, 40) 获取文本(参见代码)

from tkinter import *

class CanvasShapes:
    def __init___(self):
        master = Tk()

        self.c1 = Canvas(master, width = 200, height = 100)
        self.c1.grid(columnspan = 5)

        #there are more buttons, but this is the only relevant one for this problem
        Button(master, text = "String", command = self.String).grid(row = 1, column = 3)

    def String(self):
        self.c1.create_text(60, 40, text = "Hi, I am a string", font = "Times 16 bold underline")

def main():
    Canvas1 = CanvasShapes()

main()

默认情况下,x,y 表示文本的中心点。如果您使字体变大或变小,中心保持不变,但边缘会根据文本的大小而变化。

anchor='nw' 添加到 create_text 命令,使坐标重新定位文本的左上角(西北角)。