How to get the width of a string in pixels?

MA1 picture MA1 · Mar 16, 2010 · Viewed 10.8k times · Source

I am using wxPython's HyperTreeList and I want to set the column width exactly equal to length of the largest string in it.

To accomplish that, I'd like to to convert a python string size into pixels.

For Example: If we have a string like

str = "python"
len(str) = 6

How could I convert the above string length/size into pixels?

Is there another way?

Answer

Esteban Küber picture Esteban Küber · Mar 16, 2010

You'll have to do something like (see the documentation of wxWidgets for more info)

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