我是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()
答案 0 :(得分:0)
默认情况下,x,y代表文本的中心点。如果使字体变大或变小,则中心保持不变,但边缘将根据文本的大小而变化。
将anchor='nw'
添加到create_text
命令,以使坐标重新发送到文本的左上角(西北角)。