Python画布文本位置随字体而变化

时间:2016-10-21 11:34:23

标签: python canvas text tkinter position

我是Python和GUI编程的新手,但在尝试创建一个简单的canvas程序时遇到了以下问题: 当我使用create_text函数(x,y等)时,它会在(x,y)处很好地创建文本,但是当我添加字体时,文本向左移动而不再在(x,y)处创建。 / p>

有人可以告诉我如何解决这个问题,并在(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()

1 个答案:

答案 0 :(得分:0)

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

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