如何获取字符串的宽度(以像素为单位)?

时间:2010-03-16 14:40:40

标签: python wxpython

我正在使用wxPython的HyperTreeList,我想将列宽设置为完全等于其中最大字符串的长度。

为了实现这一点,我想将python字符串大小转换为像素。

例如:如果我们有一个像

这样的字符串
str = "python"
len(str) = 6

如何将上述字符串长度/大小转换为像素?

还有其他办法吗?

2 个答案:

答案 0 :(得分:13)

您必须something like(有关详细信息,请参阅documentation of wxWidgets

f = window.GetFont()
dc = wx.WindowDC(window)
dc.SetFont(f)
width, height = dc.GetTextExtent("Text to measure")

答案 1 :(得分:10)

这取决于您打印文本的方式。

您可能会对PIL ImageDraw感兴趣的textsize方法。见http://effbot.org/imagingbook/imagedraw.htm

更新:这是回答原始问题。问题更新后,它可能看起来有些偏离主题。