Ответ 1
В основном вам нужно только рассчитать ширину строки, ширину области, где вы хотите ее центрировать, и все готово.
Используйте Canvas.stringWidth, чтобы определить ширину данной строки (с шрифтом и размером). Он не учитывает пробел char, но я сделал несколько тестов, которые позволяют исправить это.
def stringWidth2(string, font, size, charspace):
width = stringWidth(string, font, size)
width += (len(string) - 1) * charspace
return width
Все, что он делает, это использовать исходный stringWidth
для вычисления ширины строки и добавить дополнительные пробелы между символами. Теперь у меня нет опыта работы с типографикой, поэтому я не уверен, что функции шрифта, такие как кернинг, могут сделать это непригодным для использования.
Если вы настроите x-происхождение таким образом, ваша строка будет центрирована.
(area_width - string_width) / 2
Малый тест script Я использовал http://pastebin.com/PQxzi1Kf (код не красавица, но он работает).