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
命令,使坐标重新定位文本的左上角(西北角)。
我对 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
命令,使坐标重新定位文本的左上角(西北角)。